Google C++ スタイル ガイド ( http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Preprocessor_Macros ) は次のように述べています。
「マクロを使用してコードを条件付きでコンパイルする代わりに...まあ、それはまったくしないでください」
次のような機能があるのはなぜそんなに悪いのですか
void foo()
{
// some code
#ifdef SOME_FUNCTIONALITY
// code
#endif
// more code
}
?