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

--- Comment #1 from janpmoeller at gmx dot de ---
The following equivalent program does not trigger the ICE:

//////////////////////////////////////////////////////////////
template<typename T, typename U>
concept C = requires (U u) { T{u}; };

template<int I, typename T>
struct type
{
    constexpr explicit type(T value)
    {
    }

    template<typename U>
    constexpr explicit type(type<I, U> value)
        requires C<T, type<I, U>>
    {
    }
};

template <typename T>
using alias = type<0, T>;

constexpr alias foo{123};
//////////////////////////////////////////////////////////////

Reply via email to