C++ horrible aspects
Linus Torvalds described C++ as being a horrible language. While C++ has its dark corners I choose it any day over any other language. There are some questionable aspects though:
- 'rvalue' references becoming 'lvalue' references. Not sure who invented this but he should be banned from the committee. Super confusing that a type can change.
- universal references and perfect forwarding. Again a very confusing idea to reuse the 'rvalue' reference syntax. The reference collapsing rules doesn't make it easier either
- two phase lookup. Confusing rule which could have been solved by stating that a template definition is only checked at instantiation time. No more need for 'typename' or making types and member functions (non) dependent
- lack of uniformity in STL. For example there is reset and clear.
- functional programming style over object oriented. Why not make the regex functions member functions? This will help intellisense which is an important aspect for programming these days.
- uniform initialization. Again the committee f*cked up. Could be fixed by using double braces (e.g.std::vector<size_t>{{2}})
Besides these aspects the C++ language misses an extended standard library. One need frequent 3th party libraries for basic things. This could have been alleviated if there was a standard package manger with de facto libraries but there isn't.