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