Dan*_*aum 5 c++ language-lawyer c++11
我正在研究C++标准,以了解操作,表达式,语句和副作用的顺序.
相关问题是名称的"声明点".在C++ 11标准的§3.3.2.1节中,标准规定:
声明的名称是在完整的声明者(第8条)之后和初始化者(如果有的话)之前......
以下段落添加了一个带有示例的注释:
注意:外部作用域中的名称在隐藏它的名称声明之前仍然可见.
......举例说明
const int i = 2;
{ int i[i]; }
Run Code Online (Sandbox Code Playgroud)
并且注释声明此代码示例"声明了两个整数的块范围数组".
我希望能够查看示例代码,并通过应用"声明点"的定义以及关于外部作用域中名称可见性的说明,能够查看该代码并进入逻辑结论,我自己,这是一个结构良好的代码,它做了它似乎做的事情.
但是,根据这些定义和规则,我无法理解如何查看此代码并得出此结论.
从左到右阅读,i[]数组的声明似乎出现在使用i外部范围之前,因此" 在声明之前仍然可见"的含义并不意味着在阅读中从左到右感.
" 直至宣言 "必须意味着"操作秩序"意义上的某些内容.
C++标准中的定义或规则规定,在数组声明中,数组名称的"声明点"出现在方括号内的表达式之后?在这种情况下,"后"究竟是什么意思?
tjl*_*tjl 11
"完整声明者" - >声明者包括[]其内容.也就是说,上面的完整声明符是i[i],所以它只在那之后被声明.
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |