Why use non-member begin and end functions in C++11?

Every standard container has a begin and end method for returning iterators for that container. However, C++11 has apparently introduced free functions called std::begin and std::end which call the begin and end member functions. So, instead of writing auto i = v.begin(); auto e = v.end(); you’d write auto i = std::begin(v); auto e = … Read more

Why is the C++ STL is so heavily based on templates? (and not on *interfaces*)

I mean, aside from its obligating name (the Standard Template Library)… C++ initially intended to present OOP concepts into C. That is: you could tell what a specific entity could and couldn’t do (regardless of how it does it) based on its class and class hierarchy. Some compositions of abilities are more difficult to describe … Read more