nested class with out-of-class-definition and requires clause fails to compile (original) (raw)

The following code fails to compile:

template concept is_valid = true;

template class Nesting { public: template requires is_valid class Inner; };

template template requires is_valid class Nesting::Inner {};

with the error message:

<source>:13:31: error: requires clause differs in template redeclaration
   13 | template<typename Q> requires is_valid<Q>
      |                               ^
<source>:8:35: note: previous template declaration is here
    8 |     template<typename Q> requires is_valid<Q>
      |                                   ^
1 error generated.
Compiler returned: 1