プリプロセッサディレクティブで非型定数テンプレートパラメータを使用することは可能ですか?これが私が心に留めていることです:
template <int DING>
struct Foo
{
enum { DOO = DING };
};
template <typename T>
struct Blah
{
void DoIt()
{
#if (T::DOO & 0x010)
// some code here
#endif
}
};
のようなものでこれを試してみるとBlah<Foo<0xFFFF>>
、VC ++ 2010は、使用しようとしている行の一致しない括弧について何か不平を言います#if
。プリプロセッサはテンプレートについて何も知らないのではないかと思いますが、この種のことはそのドメインに含まれていません。何を言います?