view gcc/testsuite/g++.dg/cpp0x/alias-decl-52.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR c++/67021
// { dg-do compile { target c++11 } }

template<typename> struct Dummy;
template<> struct Dummy<int> {};

template <class...>
struct all_same { static constexpr bool value = true; };
template <class T, class...Rest>
struct all_same<T, T, Rest...> : all_same<T, Rest...> {};
template <class T, class U, class...Rest>
struct all_same<T, U, Rest...> { static constexpr bool value = false; };

template <class R>
using ValueType = int;

template <class I>
constexpr bool A(I i) {
  return all_same<ValueType<I>, ValueType<decltype(i++)>>::value;
}

int main() {
  static_assert(A(42), "");
}