たとえばBOOST_PP_ITERATE
、BOOST_PP_ITERATION
GMan の answere here に見られるように、 と はプリプロセッサ マクロであり、パラメータはありません。それらが単純な定義ではなく、 なしでそのように使用される理由はあります()
か?
2 に答える
4
一般に、関数のようなマクロを使用して、意図しないマクロの展開を防ぐことができます。
たとえば、次のマクロ呼び出しがあるとします。
BOOST_PP_CAT( BOOST_PP_ITERATION, _DEPTH )
そして、これが に拡張されることを期待していBOOST_PP_ITERATION_DEPTH
ます。
ただし、(機能しない) マクロのようなオブジェクトの場合は、連結によってBOOST_PP_ITERATION
トークンが生成される前に独自の定義に展開
されます。BOOST_PP_ITERATION_DEPTH
于 2011-03-31T13:08:06.397 に答える
1
おそらく、それらは操作を実行するためです。したがって、それらの使用法は、定数を使用するだけでなく、実際に何かを呼び出していることを明確にする必要があります。
于 2011-03-31T11:59:42.297 に答える