C++14 草案增加了对变量模板的支持。提案(N3651)中的示例都显示了常量(constexpr
或const
),但据我所知,这不是必需的。变量模板变量是否可以改变,例如,被分配给?
template<typename T>
T magicVal = 42;
magicVal<int> = 0; // okay?
是的,可变模板实例是一流的对象。实际上,模板 ID 只是一个名称。
static
“在底层”是一个变量模板,与带有单个成员的老式类模板相同。
编辑:似乎该提案constexpr
仅根据常数编写,例如一般表示数学实体。审查委员会要求扩展到其他对象,并在事后添加。
那将是一个真正奇怪的限制。通读最新草案的第 14 章,没有任何迹象表明有任何此类迹象。