ユニットテストフレームワークを使って、マクロ引数をテストしたいという状況に遭遇しました。簡単に言えば、がshort
、FOO(anything_else)
がlong
となるようにマクロFOO(x)
を展開したいと思います。プリプロセッサ引数を条件付きで置き換えることはできますか?
C++テンプレートでは、もちろんこれは問題ではありません。しかしここで私は実際のトークンの交換が必要です。typedef
だけではありません。私。 FOO(char) FOO(char) i;
はlong long i;
に等しい有効な定義である必要があります。
最新のC標準には、マクロの置換テキストが最初の引数の式の型に依存する機能があります。これをビルディングブロックとして使用できます。 –
あなたはboost.ppを見ましたか?それと一緒にsomethignをハックすることができますか? – PlasmaHH
@StefanMajewsky:私はジェネリックスを信じていますか? – dirkgently