TSm*_*ith 9 c++ standards language-lawyer c++14
正如标题所暗示的那样,之前已经提出了这个问题.但是,答案与C++ 03/0x(11)有关.C++ 11(N3337)对变量说了这个:
甲变量是由比非静态数据成员或对象的其他的基准的声明引入.变量的名称表示引用或对象.
这可能意味着变量本质上是命名对象/引用.
变量的名称(如果有)表示引用或对象.
这意味着一个变量并没有必然有一个名字.
对第一句的不同解释可以表明变量是名称,因为表示对象/引用的名称也由这些实体的声明引入.但第二句与"变量名"这一概念相矛盾.那么,变量现在只是对象和引用的上位词,无论是否命名?
Bar*_*rry 14
此更改是CWG 1769的结果,解决了绑定到未命名的catch处理程序参数的异常对象的状态:
catch (std::exception&) // <==
{
}
Run Code Online (Sandbox Code Playgroud)
现在这是一个变量.这简化了异常对象的概念模型.
第一句保持不变,仍然是变量一词的完整定义.