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