template<int, int>
struct T;
template<>
struct T<?, ?> {};
我想让这个工作
typedef T<1, 0> t;
这会导致编译时错误
typedef T<1, 2> t;
编辑,我的意思是我希望第二个参数为 0。我不能使用 C++11 功能。
template<int, int>
struct T;
template<>
struct T<?, ?> {};
我想让这个工作
typedef T<1, 0> t;
这会导致编译时错误
typedef T<1, 2> t;
编辑,我的意思是我希望第二个参数为 0。我不能使用 C++11 功能。
你的问题不是太清楚。你在找这个吗?
template <int, int>
struct T;
template<int x>
struct T<x, 0>
{
// Definition of the struct for the allowed case
};
您可以使用static_assert断言模板参数。
template<int A, int B>
struct T
{
static_assert(A > B, "Raised error because A is not bigger than B)";
}