可变模板变量可能不同?

时间:2013-11-07 00:42:18

标签: c++ templates c++14

Draft C ++ 14增加了对变量模板的支持。提案中的示例(N3651)都显示常量(constexprconst),但据我所知,这不是必需的。可变模板变量可以变化,例如,分配给?

template<typename T>
T magicVal = 42;

magicVal<int> = 0;       // okay?

2 个答案:

答案 0 :(得分:6)

是的,变量模板实例是第一类对象。实际上,template-id只是一个名称。

“引擎盖下”变量模板与具有单个static成员的老式类模板相同。

编辑:似乎该提案仅以constexpr常量编写,例如通常用于表示数学实体。审查委员会要求扩展其他对象,并作为事后补充加入。

答案 1 :(得分:1)

这将是一个真正奇怪的限制;阅读latest draft的第14章,没有任何类似的迹象。