0
template<int, int> 
struct T;

template<> 
struct T<?, ?> {};

これを機能させたい

typedef T<1, 0> t;

これにより、コンパイル時エラーが発生します

typedef T<1, 2> t;

編集、つまり、2番目のパラメーターを0にしたいのですが、C++ 11の機能を使用できません。

4

2 に答える 2

0

static_assertを使用して、テンプレート引数をアサートできます。

template<int A, int B> 
struct T
{
   static_assert(A > B, "Raised error because A is not bigger than B)";
}
于 2013-07-24T10:17:55.600 に答える