cppllを眺めていると、デバッグ出力用のコードを無効化にする話が議論されていました。[cppll:13624]
コード自体はいろいろあったのですが、その中の一つが次のコード。
- #ifdef DEBUG
- #define DOUT std::cout
- #else
- #define DOUT 0 && std::cout
- #endif
- DOUT << "debug" << std::endl;
何が凄いって、次のコードがgcc 4.4.5で-pedantic-errors -O0オプション付きでコンパイルできた。
- bool f(); // 宣言だけ
- int main() {
- if (false && f()) {
- } else {
- std::cout << "きえたよ" << std::endl;
- }
- }
0 件のコメント:
コメントを投稿