-ちょっと失敗談

その2

クラスの識別子をチェックするような場合。 コピペしてると忘れることがあります(´ω`;) if (foo->id()==0) { ... } // コンパイルok 意図したプログラム if (foo->id==0) { ... } // コンパイルok しかし関数ポインタとして比較される if (foo->id==1) { ...…

その1

#defineでマクロを書くときは気を付けないと危険です。 例えば、 #define hoge(X) if (X==0) {} elsif (X==1) {} hoge(++N); インクリメントされたNではなく「++N」自体が渡される為、 評価される度に値が変わってしまいます。 もう一つ。 #define hoge(X)\ …