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 horrible 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.