5 void foo() const; // #2
6 void foo() volatile; // #3
7 void foo() const volatile; // #4
12 void failsToCompile() const {
13 Base::foo(); // should select #2, not #1
16 void failsToCompile() volatile {
17 Base::foo(); // should select #3, not #1
20 void failsToCompile() const volatile {
21 Base::foo(); // should select #4, not #1
25 template struct TopClass<Base>;