1 // RUN: %clang_cc1 -std=c++20 -verify %s 2 // RUN: %clang_cc1 -std=c++23 -verify %s 3 // expected-no-diagnostics 4 5 template<class T> concept IsOk = requires() { typename T::Float; }; 6 7 template<IsOk T> struct Thing; 8 9 template<IsOk T> struct Foobar { 10 template<int> struct Inner { 11 template<IsOk T2> friend struct Thing; 12 }; 13 }; 14 15 struct MyType { using Float=float; }; 16 Foobar<MyType>::Inner<0> foobar; 17