2012-01-20 11 views
0

私は、後のコードで使用できる別のマクロを定義するC++でマクロを定義することが可能かどうか疑問に思っていました。これは可能ですか、これにはあまりにも制限があるg ++で使用されるプリプロセッサですか?C++のマクロでマクロを定義できますか?

+1

「g ++で使用されているプリプロセッサ」でもありませんが、これは十分強力ではありません。これを許可しないのはC++言語そのものです。あなたが達成したいことを説明したなら、私はここの人々が解決策を考え出すことができると確信しています。 – Lindydancer

+0

これはどのように「制限されますか?あなたが達成しようとしていることを共有してください。 –

答えて

5

いいえ、別のマクロの展開でマクロを定義することはできません。

1

いいえ、マクロをマクロとして定義することはできません。

1

このようなことができますが、それはあなたが探しているものではありませんが、役立つかもしれません。

#ifdef ENABLE_MACRO_1 
#define PRINT_MACRO(varName) \ 
     std::cout<<varName<<std::endl; 
#else 
#define PRINT_MACRO(varName) \ 
     //do nothing 
#endif 

定義されている別の前条件に応じてマクロを定義することができます。

1

プリプロセッサはソースコードを1回だけ通過するので、これは不可能です。ただし、外部ツールを使用して、m4のようにコンパイルに先立っていくつかの前処理を実行することができます。

関連する問題