tem*_*boy 8 c++ language-lawyer c++11
void f(int x = decltype(x){});
Run Code Online (Sandbox Code Playgroud)
gcc中的错误表示x未在此范围内声明,但根据3.3.2/1,变量x应在范围内:
声明的声明就在其完整的声明者(第8条)之后和初始化者(如果有的话)之前,除非如下所述.[例:
Run Code Online (Sandbox Code Playgroud)int x = 12; { int x = x; }这里第二个
x用自己的(不确定的)值初始化. - 结束例子]
clang是否正确?应该x可以在自己的初始化程序中访问?
PS:int x = x作为参数在两个编译器中都失败但我不知道为什么.