The constructive answer to complaints about language flaws is discussing how to mitigate or accept them. For example:
- "Templates are ugly": a respectable opinion, but as a matter of fact duplicating code by hand with slight variations in a number of non-template classes is far more ugly.
- "You cannot print enum values": by writing the enum with clever macros and templates you can (any particularly good example to recommend?)
- "std::vector<bool> sucks": then don't use it. If you need a true std::vector, you can usually afford it to be of a normal numeric type; if you need to pack one boolean into one bit, you don't usually need your special container to be vector<bool>.