https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103540

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Please provide the code here in bugzilla, not just a URL, as requested at
https://gcc.gnu.org/bugs/


#include <type_traits>

template<typename N>
concept StrictNodeType = requires {
    typename N::something;
};

template<StrictNodeType N> using Int = int; 

template<int>
struct X {using something = Int<X>; };

using ThisBreaks = Int<X<0>>;



As well as the "depends on itself" error and the incomplete "because" note,
there is an error pointing to exactly the right spot already:

<source>:11:17: error: template constraint failure for 'template<class N> 
requires  StrictNodeType<N> using Int = int'
   11 | struct X {using something = Int<X>; };
      |                 ^~~~~~~~~

Reply via email to