view gcc/testsuite/g++.dg/cpp2a/concepts-pr67654.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

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