[英]Unusual scope resolution operator
在今天重构一些C ++代码的过程中,我得到了一些可归结为以下内容的代码
class x
{
public:
void x::y();
};
x::
scope解析器操作符是否在此处执行任何操作,是一个错误,还是其他内容。 我最好的猜测是,它是一些自动完成遗留下来的人工制品,但我很想知道我是否遗漏了任何东西。 正在使用的编译器是VS2010 SP1。
这是一个错误,大多数编译器都会拒绝它。 例如, GCC说
prog.cpp:4:10: error: extra qualification ‘x::’ on member ‘y’ [-fpermissive]
void x::y();
^
C ++ 11 8.3 / 1不允许使用冗余限定符:
除了在其类之外的成员函数或静态数据成员的定义,在其命名空间之外的命名空间的函数或变量成员的定义或显式实例化,或者显式的定义之外,declarator-id 不应被限定在其命名空间之外的特化,或者是另一个类或命名空间的成员的友元函数的声明。
没有适用于其类中的成员声明的异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.