例如,
enum tr {z, u};
template<tr T>
class test
{
assert(T is z or u);//how can I add assertions in this field?
};
在评论中如何添加代码来断言模板T应该只是z还是u?
答案 0 :(得分:2)
这可以使用static_assert
完成,因为@πάντα-ῥε已经指出:
enum tr {z, u, bar};
template<tr T>
class test
{
static_assert(T==z||T==u, "T must be z or u");
};
int main()
{
test<z> t_valid;
test<bar> t_fails; // compilation fails
return 0;
}