view gcc/testsuite/g++.dg/cpp2a/concepts-pr67654.C @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 1830386684a0
children
line wrap: on
line source

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

template <bool... Values> struct and_c_impl {
  static constexpr bool value = true;
};

template <bool ValueFirst, bool... ValuesRest>
struct and_c_impl<ValueFirst, ValuesRest...> {
  static constexpr bool value = ValueFirst && and_c_impl<ValuesRest...>::value;
};

template <bool... Values> constexpr bool and_c() {
  return and_c_impl<Values...>::value;
}

template<class T> concept bool C() {
  return true;
}

template<class... Tx>
struct A {
  A() requires and_c<C<Tx>()...>() = default;
};

int main() {
  A<int, double> a;
  return 0;
}