view gcc/testsuite/g++.dg/cpp2a/concepts-pr69235.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
line wrap: on
line source

// { dg-do compile { target c++2a } }
// { dg-additional-options "-fconcepts-ts" }

template<typename T>
concept bool Boolean()
{
  return requires(T t)
  {
    { t } -> bool;
  };
}

template<typename T>
concept bool C()
{
  return requires (T t)
  {
    { t } -> Boolean;
  };
}

template<typename T>
struct X;

template<typename T>
  requires ! C<typename T::type>()
struct X<T>
{
  using type = int;
};

template<typename T>
  requires C<typename T::type>()
struct X<T>
{
  using type = int;
};

struct S
{
  using type = char;
};

void f()
{
  X<S>::type x;
}