Sunday, July 21, 2024

C++ horrible aspects

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.


C++ horrible aspects

C++ horrible aspects  Linus Torvalds described C++ as being a horrible language. While C++ has its dark corners I choose it any day ove...