可能重复:
为什么编译器支持冗余范围限定,它是否合法?
我不希望它编译,但它确实。这可能是编译器错误,还是有一些正确的含义?
$ g++ -c scopes.cpp
$ cat scopes.cpp
class Log {
public:
Log() { }
static void fn() { }
};
void test() {
Log::Log::Log::Log::Log::Log::fn();
}
$ g++ --version
g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3