C++ほど機能が煩雑な言語って他にあるのか?
テンプレートやスマートポインタのような基本的機能もそうだが、
戻り値の型に依存した例外処理、引数の参照渡し、new()との相性の悪い*なしクラス型など、
後発の言語が採用しなかった一貫性の無い仕様や、
#defineマクロ、グローバルstaticやヘッダとソースの分離などの70年代の因習をそのまま残しており、
しかもC時代に由来するmalloc/free、typedef struct、グローバル関数などをそのまま使う人が多い。
標準ライブラリにもstdio/iostreamのような重複が全体に生じている。
それに加え、ラムダ式やジェネリック、右辺値参照、constexprなどの機能拡張も進んでいる。
STLやBoostなどのライブラリも加えればきりがない。
そのくせまともなガベージコレクションはない。
実際のプログラミングではコーディング規約で一貫したルールを定め、余計な機能は使わないようにするのが普通だが、
やはり現代的な言語に比べるとずいぶん使いづらい。組み込み用途、DLLやドライバの開発以外では用いるべきではないのかも。