n3035说:(2010-02-16)
变量由对象的声明引入。变量的
name表示对象。
n3090说:(2010-03-29)
变量是通过声明除a之外的引用引入的
非静态数据成员或对象。变量的名称表示
参考或对象。
n3242说:(2011-02-28)
变量是通过声明除a之外的引用引入的
非静态数据成员或对象。变量的名称表示
参考或对象。
任何人都可以在一个程序的帮助下解释差异(或者说是什么)
这是ISO标准C ++的声明
我看到了这个链接:
为什么在C ++ 11的开发过程中变量的定义发生了变化?
但这不是(完全意义)我的问题......
考虑:
int x = 42;
int& rx = x;
x
是一个变量;应该 rx
也算是变量?许多标准关于非参考变量的要求也适用于参考文献。在整个标准中不得不经常规定“变量或引用变量”显然是一种痛苦,所以如果变量的定义可以包括引用 - 也许偶尔会出现“除引用之外”,那么标准可能是 - 总的来说 - 简化。在我看来,修改正在探索这种平衡。
这是一个 CWG defect #633 in ISO C++03
还可以看看 n2993
处理 core issue# 633
即
“适用于参考文献的变量规范”
这些更改的目标是扩展“变量”的含义以包含命名对象和引用,并在可行的情况下始终如一地应用该术语。