C++の「使ったら負け」シリーズ †超初級編 †最低レベルの警告メッセージ・もしくは抑止機能 †ほとんどの環境で、ビルドオプションに「警告レベル」という設定があります。 最低レベル、もしくは警告なしの設定にしてはいけません。それは、丸裸で戦場に行くようなものです。 初級編 †#defineによるマクロ定義 †言うまでもありませんが、#defineによるマクロは強力すぎて、バグの温床であり、デバッグを困難にする要因です。できるかぎり使わないに越したことはありません。 Cスタイルのキャスト †ヘッダファイルでの using namespace †グローバル変数 (デバッグ用途以外で) †マジックナンバー †中級編 †クラスのfriend宣言 †フレンドを使うのは非常に限定的。ほとんどの場合は使う事で何らかのトレードオフがあると考えた方がよい。
class Hoge : public ts::singleton_policy<Hoge> { friend struct ts::singleton_policy<Hoge>; Hoge(); public: クラスの前方宣言 †void* †NULLなどCライブラリ由来のマクロ定数 †union †#ifdef #if defined() 等による条件コンパイル †上級編 †reinterpret_cast †ヌルポインタチェック †switch文 †生delete文 †マネージャーという名前を含むクラス名 †最上級編 †virtual † |