blob: 27340753901e62c1f8e7cf14ceb0c40f76eb4d12 [file] [log] [blame]
// 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), "");
}