// { 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);
}