c++ - 模板特化适用于 int 而失败于 double 作为一个类

标签 c++ templates

我有一个简单的模板:

template<class T, T N>
bool VerifyGT(T value) {
  return value > N;
}

bool (*test1)(int) = &VerifyGE< int, (int) 0>;  // (1)
bool (*test2)(double) = &VerifyGE< double, (double) 0.0>;  // (2)

编译时:test1 初始化成功,test2 失败并显示“与所需类型不匹配”。有什么想法吗?

最佳答案

非类型模板参数不能是浮点类型。仅允许整数类型、枚举、指针和引用。

关于c++ - 模板特化适用于 int 而失败于 double 作为一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150571/

相关文章:

c++ - 使用 ofstream 创建一个位图文件有一个奇怪的输出

c++ - 构建Qt时出现编译器错误

c++ - 为什么模板只能在头文件中实现?

c++ - cppcheck 警告, "hides typedef with same name"

c++ - 如何创建 SDL 弹出菜单?

c++ - 如何使用 Linux API for C 确定文件系统类型(名称)?

c++ - 多个翻译单元中是否允许模板变量并有效合并?

c++ - 迭代器的模板参数 : function infers type when called?

facebook - 通用模板 image_url 未在 Messenger 中加载 - Facebook Messenger Platform

file - IntelliJ 文件模板光标位置