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