Jam*_*ree 16 c++ extern language-lawyer auto c++11
标准是否允许以下内容?
#include <iostream>
extern int a;
auto a = 3;
int main(int, char**)
{
std::cout << a << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
从标准来看,我不太清楚,但是,有这么写
第 7.1.6.4 节 auto 说明符
在本节未明确允许的上下文中使用 auto 的程序是格式错误的。
更好地阅读标准中提到的所有允许的上下文部分。
考虑到这一点,我相信 g++ 是正确的,而 clang 是错误的。但我可能是错的,标准中可能有一些单独的部分可能暗示着这种背景,但我找不到它。
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |