相关疑难解决方法(0)

是Type(:: x); 有效?

虽然讨论Type(identifier);语法和它是如何声明,我碰到Type(::x);不锵工作.我希望给定一个全局变量x,它将被::x视为一个表达式(::x + 2作品)并转换::xType.但是,它给出了编译器错误.

这是一个简短的例子:

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编译就好了.这段代码有效吗?

c++ expression compiler-errors declaration language-lawyer

22
推荐指数
2
解决办法
1127
查看次数