Efficient Programming with Components: Lecture 2 Part 2
32 1 3997
Second half of the second lecture of Efficient Programming with Components.
Code is available here: http://www.stepanovpapers.com/a9_2013/lectures.tar.gz
* Component programming: a personal history.
* An example of ineffective use of STL. An equivalent STL solution that is much faster.
Operation counting. Timing.
By anonymous 2017-09-20
In this video Alex Stepanov, the creator of STL addresses this very question at about 13:00. To summarize, having watched the evolution of C++ he argues that:
- It's unfortunate that == and != are not implicitly declared (and Bjarne agrees with him). A correct language should have those things ready for you (he goes further on to suggest you should not be able to define a != that breaks the semantics of ==)
- The reason this is the case has its roots (as many of C++ problems) in C. There, the assignment operator is implicitly defined with bit by bit assignment but that wouldn't work for ==
- In the follow up question Why then wasn't a member by member comparison used he says an amazing thing : C was kind of a homegrown language and the guy implementing these stuff for Ritchie told him he found this to be hard to implement!
He then says that in the (distant) future == and != will be implicitly generated.