Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 变量模板变量可能会变化吗?_C++_Templates_C++14 - Fatal编程技术网

C++ 变量模板变量可能会变化吗?

C++ 变量模板变量可能会变化吗?,c++,templates,c++14,C++,Templates,C++14,草案C++14增加了对变量模板的支持。提案()中的示例都显示常量(无论是constexpr还是const),但据我所知,这不是必需的。变量模板变量可能会发生变化,例如分配给 template<typename T> T magicVal = 42; magicVal<int> = 0; // okay? 模板 T magicVal=42; magicVal=0;//可以 这将是一个非常奇怪的限制;阅读的第14章,并没有任何类似的迹象。是的,变量模板实例是一

草案C++14增加了对变量模板的支持。提案()中的示例都显示常量(无论是
constexpr
还是
const
),但据我所知,这不是必需的。变量模板变量可能会发生变化,例如分配给

template<typename T>
T magicVal = 42;

magicVal<int> = 0;       // okay?
模板
T magicVal=42;
magicVal=0;//可以

这将是一个非常奇怪的限制;阅读的第14章,并没有任何类似的迹象。

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

“UndertheHood”是一个变量模板,与老式的类模板一样,只有一个
静态
成员


Edit:该提案似乎仅以
constexpr
常量编写,以便一般表示数学实体。审查委员会要求将其扩展到其他对象,并将其作为事后考虑添加。

由于目前处于提案状态,很难说。任何试图说出将要或不会合法(甚至将要削减)在这一点上的尝试都是纯粹的推测。该提议被接受,并且该特征在当前的C++ 14草案中,因此很有可能这个特性将在下一个版本的C++中出现。这已经超出了猜测阶段。@ZacHowland:该标准在今年早些时候大致敲定,只有在最终批准阶段有人提出严重反对时才会改变。@MikeSeymour啊,我一定错过了这个。。。我一直希望他们能把std::optional
…@ZacHowland带回来。它被界面设计细节的辩论扼杀了。最好确定一个我们将永远生活在一起的界面。应该在TR2中返回,但我希望TR2的接口作为一个整体比TR1更可移植。