// 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; |