虽然讨论的Type(identifier);语法和它是如何声明,我碰到Type(::x);不锵工作.我希望给定一个全局变量x,它将被::x视为一个表达式(::x + 2作品)并转换::x为Type.但是,它给出了编译器错误.
这是一个简短的例子:
int x;
int main() {
int(::x); //does not compile
int(::x + 2); //compiles
}
Run Code Online (Sandbox Code Playgroud)
Clang 3.5给出的编译器错误是:
错误:'x'的定义或重新声明不能命名全局范围
但是,GCC 4.9.0编译就好了.这段代码有效吗?