| // { dg-do compile { target c++20 } } | |
| template<typename T> | |
| concept C1 = | |
| requires () { | |
| { T::smf() } noexcept; | |
| }; | |
| struct M1 { | |
| static void smf() noexcept; | |
| }; | |
| template<typename T> | |
| concept C2 = C1<typename T::type>; | |
| struct M2 { | |
| using type = M1; | |
| }; | |
| static_assert(C2<M2>, ""); |