// PR c++/79960 // { dg-do compile { target c++11 } } using size_t = decltype(sizeof(0)); template struct tuple_size; template::value> using __has_tuple_size = T; template struct tuple_size> { static constexpr size_t value = tuple_size::value; }; template struct tuple_size> { static constexpr size_t value = tuple_size::value; }; template struct tuple_size> { static constexpr size_t value = tuple_size::value; }; template struct tuple { }; template struct tuple_size> { static constexpr size_t value = sizeof...(T); }; static_assert( tuple_size>::value == 0, "" ); // OK static_assert( tuple_size>::value == 0, "" ); // OK static_assert( tuple_size>::value == 0, "" ); // FAIL