// PR c++/99831 | |
// { dg-do compile { target c++20 } } | |
// { dg-options "--param ggc-min-heapsize=0 --param ggc-min-expand=0" } | |
template <int N> struct S { | |
constexpr S(const char (&str)[N]) : value{} { } | |
char value[N]; | |
}; | |
template <S> struct string { | |
constexpr bool operator==(const string &) const = default; | |
}; | |
template <S L2> void operator+(string<L2>) { | |
char value[1]; | |
S{value}; | |
} | |
static_assert(string<"a">{} == string<"a">{}); |