c++模板检查类型验证
c++ template check type validation
例如
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?
这可以用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;
}
live on ideone
相关文章:
- 验证(使用 static_assert)元组类型是否遵循某种顺序(有状态编译时检查)
- boost::p rogram_options 验证每个参数而不是每个参数类型?
- 字符类型声明和验证
- RSA_verify中预期的数据类型是什么,无法验证从 Java 生成的签名
- 用于验证类型的动态强制转换
- 正确数据类型的输入验证
- C++,如何验证输入的数据是否为正确的数据类型
- 如何仅验证int类型的输入..以一种非常简单但有效的方式?在c++中
- 组件 X 的超类型未知,其某些属性未经验证
- 编译器的函数返回类型验证
- 验证基对象是否属于特定的派生类型
- 使用 dynamic_cast to 验证指向多态类型的指针
- 是否可以使用Boost概念检查库验证方法返回类型
- 使用XML模式类型的Qt GUI输入验证
- 如何验证传递给模拟函数的参数的派生类型
- 在编译时在c/c++预处理宏中验证参数为ARRAY类型
- c++验证String中的Double类型
- 在c++中,在解析过程中验证数据类型(从string到int)
- 如何验证数据类型输入
- c++模板检查类型验证