gpt4 book ai didi

c++ - 为什么不允许 double 作为非类型模板参数?

转载 作者:IT老高 更新时间:2023-10-28 21:41:29 25 4
gpt4 key购买 nike

2003 年 - 是的,2003 - Vandervoorde 和 Josuttis 在他们的“C++ 模板”一书中写道(第 40 页):

Not being able to use floating-point literals (and simple constant floating-point expressions) as template arguments has historical reasons. Because there are no serious technical challenges, this may be supported in future versions of C++.

但这仍然不起作用,即使在 C++11 下:

template<double D> //error
void foo() {}

为什么没有添加?

最佳答案

我一直认为这与实现相互匹配有关。这两个实例是相同还是不同:

template class foo<10./3.>
template class foo<1./3 * 10.>

它们可能不会生成相同的 double 表示,因此编译器可能会将它们视为不同的类。然后你不能将它们分配给彼此,等等。

关于c++ - 为什么不允许 double 作为非类型模板参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17727467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com