> 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

Reply via email to