================ @@ -429,3 +429,19 @@ namespace qualified_friend_no_match { friend void Y::f(double); // expected-error {{friend declaration of 'f' does not match any declaration in 'qualified_friend_no_match::Y'}} }; } + +namespace gh21483 { +template <typename I> +struct B { + struct mixin { + int type; + friend void foo(B<I>::mixin it) { + (void)it.mixin::type; ---------------- HerrCai0907 wrote:
`::` is scope resolution operator. A more clear example is ```c++ struct T { int a; }; struct T1 : public T { int a; }; void foo () { T1{}.T::a; T1{}.T1::a; } ``` https://godbolt.org/z/K1b1jodse https://github.com/llvm/llvm-project/pull/70886 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits