これがコンパイルされるとは思いませんが、コンパイルされます。これはコンパイラのバグでしょうか、それとも正しい意味を持っているのでしょうか?
$ 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