| template<typename T> | |
| struct traits | |
| { | |
| template<typename U> | |
| struct nested | |
| { using type = void; }; | |
| template<typename U> requires requires { typename U::type; } | |
| struct nested<U> | |
| { using type = typename U::type; }; | |
| }; | |
| using V = traits<char>::nested<int>::type; | |