輝々凛々

ガンバるってことは、素晴らしい事だ。

C++が不当に扱われていないか。

最近、C++が不当に扱われているのではないかと心配になっている。

たぶん一般的な認識は「C++って、書きやすいけど妙に遅いし、変なバグに悩まされるよね」だと思う。

C++に対する理解不足

たぶん速度的な問題は次のことが原因だと思う。

  • コンストラクタの初期化リストを知らない
  • コピーコンストラクタの存在を知らない
  • どこでインスタンスのコピーが発生しているのか知らない

次に「変なバグ」は次のことが原因だと思う。

  • クラスに自動追加されるメンバがあることを知らない
  • 継承されるクラスのデストラクタが仮想デストラクタになっていない
  • ヘッダに実装を書きすぎて、依存関係が曖昧になっている
  • テンプレートをマクロ関数と勘違いしている
  • ヘッダで「using namespace」
  • inline関数はいつでも展開されると思っている
  • ヘッダインクルードの順番を勘違いしている(普通、古くて大きいものからだ)
  • VC関連のバグ

まぁ、まとめてひとことで「C++への理解不足」が原因。会社の人もこの辺を完璧にわかっている人はいない。「初期化リスト?」「ファンクタ?」「usingしちゃダメなの?」

まぁ、自分自身もC++の全部が全部理解しているわけじゃないが、特に最後の「VC関連のバグ」は深刻。「なんでvectorをインクルードするだけでstd::swapが使えねーんだよぅ?!」

以上

関連記事

ツッコミの投稿


(ツッコミ非公開の場合はチェック)