// { dg-do compile { target c++20 } } | |
template <typename T, typename U> | |
concept same_as = __is_same_as(T, U); | |
template<typename T> | |
concept character = same_as<T, char>; | |
struct T | |
{ | |
constexpr T(same_as<int> auto const x) : val(0) { } | |
constexpr T(character auto const x) : val(1) { } | |
int val; | |
}; | |
void test() | |
{ | |
static_assert(T(0).val == 0); | |
static_assert(T('a').val == 1); | |
} | |