-2
ブースト auto_rec.hppここでP ##(13)どういう意味BOOST_PP_NODE_13(P)BOOST_PP_IIF(P ##(13)、13、14)
を定義します。 はBOOST_PP_NODE_13(P)BOOST_PP_IIF(Pを定義します##(13)、13、14)
何が翻訳されていますか?
ブースト auto_rec.hppここでP ##(13)どういう意味BOOST_PP_NODE_13(P)BOOST_PP_IIF(P ##(13)、13、14)
を定義します。 はBOOST_PP_NODE_13(P)BOOST_PP_IIF(Pを定義します##(13)、13、14)
何が翻訳されていますか?
'##'前処理演算子を使用して連結します。を参照してください。 オペレータの両面からトークンを取り出し、トークンを1つ生成します。
がここに古典的な使い方です:あなたのケースでは
#define foo(x, y) x ## y
foo(aa, bb) // expands to 'aabb'
、有効な式に展開するために連結する必要はありませんpと(13)以来、##にする全く使用はありません。 最新のバージョンboostで##が消えているのは興味深いことです。
また、コンパイラエラーになる独自に無効なトークンとして、「(p」を貼り付けるしようとして打ち鳴らすは、括弧で##好きではないようです。
はい。ありがとう。私は私は間違った方法で質問しました。申し訳ありません。 –