正如标题所示,这个问题以前已经被问过。 https://stackoverflow.com/q/2920773/4917725然而,答案与 C++03/0x(11) 有关。 C++11 (N3337) 关于变量是这样说的:
[基础]/6 https://timsong-cpp.github.io/cppwp/n3337/basic#6:
A variable通过声明非静态数据成员或对象的引用来引入。变量的名称表示引用或对象。
这可能意味着变量本质上是命名对象/引用。
然而,在C++14 https://timsong-cpp.github.io/cppwp/n4140/basic#6/C++17 https://timsong-cpp.github.io/cppwp/n4659/basic#6,最后一句改为
变量的名称,if any, 表示引用或对象。
这意味着变量确实not必然有一个名字。
对第一句话的不同解释可能表明变量is一个名字,因为name表示对象/引用也是通过此类实体的声明引入的。但第二句话与“变量名称”这个概念相矛盾。那么,就是variable现在只是一个上位词object and 参考,无论是否命名?
这一变化的结果是CWG 1769 http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1769,寻址绑定到未命名 catch 处理程序参数的异常对象的状态:
catch (std::exception&) // <==
{
}
现在这是一个变量。这简化了异常对象的概念模型。
第一句保持不变,仍然是该术语的完整定义variable.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)