3
struct A
{
    static void foo() {}
};

namespace B
{
    void bar() {}
}

void run()
{
   A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::A::foo(); // compiles
   B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::B::bar(); // doesn't compile
}

I'm intrigued by the fact that A::A::A... is valid code. I would expect a compilation error just like I get for B::B::.... Anything in the lookup rules that can explain that?

andnowwhat
  • 39
  • 3

0 Answers0