【发布时间】:2012-08-04 05:10:39
【问题描述】:
我在一个网站上看到声明
template <int x>
int func() {
return x;
}
有效,以下无效
template <double x>
double func() {
return x;
}
为什么第一个是模板函数的合法声明而第二个不是?
【问题讨论】:
-
网站链接会有所帮助。
-
它只是一个 mcq,其中有 3 个选项,其中前两个是前两个,第三个是涉及 typename 的模板声明,必须选择无效的一个,答案是一个带双的..
-
我认为这基本上归结为很难以一种可以在不同的编译器和浮点表示中合理地工作的方式来指定浮点相等的含义。
-
顺便说一句:如果您正在寻找解决此限制的方法。创建一个具有返回所需值的内联静态方法的类,并将该类作为模板参数传递。
标签: c++ floating-point template-function