> For many of our developers, the STL is not an API that they are > intimately familiar with, so it's not altogether clear that using the > STL instead optimizes for developer productivity.
Developers come and go, however, and the average C++ developer is more likely to be familiar with STL interfaces than with Mozilla ADT interfaces. > It's also worth noting that large parts of the STL API are > horrendously misdesigned and have not been imitated by successor > languages--std::map, std::iterator are some good examples > here-- Templates are a feature of C++ that have not been imitated by successor languages (no, generics do not count), and yet they are one of the most powerful features of C++. I view the STL's iterator model in a similar way. > As an example > here, when is std::vector::iterator invalidated by a mutation? What > about std::map::iterator? What about std::unordered_map::iterator? > (Hint: the answer is different for all three of them). While the answers are different for all of them, they (1) follow logically from how the data structures are expected to be implemented and (2) are well-documented. Cheers, Botond _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform