【发布时间】:2021-01-17 20:55:45
【问题描述】:
只是想确认模板变量的类型可以独立于模板。这是由 g++ 编译的:
template<class T>
constexpr long MAX_AS_LONG = static_cast<long>(std::numeric_limits<T>::max());
是否符合标准?
(在互联网上的所有示例中,模板变量的类型都是T 本身)。
【问题讨论】:
-
是的,这是允许的。你会相信我们的话,还是想要引用标准?
-
@HolyBlackCat 我不反对猫的知识!
-
请记住,互联网上的这些示例通常侧重于证明模板产生不同的变量。所以改变类型只是证明它的一种简单方法。
-
我希望这不是您代码中的实际片段。因为像 size_t 这样的 T 很容易溢出。
-
...尤其是在 Windows 上,
long是 32 位。