Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/alias-decl-57.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++/79960 // { dg-do compile { target c++11 } } using size_t = decltype(sizeof(0)); template<typename T> struct tuple_size; template<typename T, size_t U = tuple_size<T>::value> using __has_tuple_size = T; template<typename T> struct tuple_size<const __has_tuple_size<T>> { static constexpr size_t value = tuple_size<T>::value; }; template<typename T> struct tuple_size<volatile __has_tuple_size<T>> { static constexpr size_t value = tuple_size<T>::value; }; template<typename T> struct tuple_size<const __has_tuple_size<volatile T>> { static constexpr size_t value = tuple_size<T>::value; }; template<typename... T> struct tuple { }; template<typename... T> struct tuple_size<tuple<T...>> { static constexpr size_t value = sizeof...(T); }; static_assert( tuple_size<const tuple<>>::value == 0, "" ); // OK static_assert( tuple_size<volatile tuple<>>::value == 0, "" ); // OK static_assert( tuple_size<const volatile tuple<>>::value == 0, "" ); // FAIL