|
120 | 120 | constexpr @\seebelow@ make_pair(T1&&, T2&&);
|
121 | 121 |
|
122 | 122 | // \ref{pair.astuple}, tuple-like access to pair
|
123 |
| - template<class T> class tuple_size; |
124 |
| - template<size_t I, class T> class tuple_element; |
| 123 | + template<class T> struct tuple_size; |
| 124 | + template<size_t I, class T> struct tuple_element; |
125 | 125 |
|
126 | 126 | template<class T1, class T2> struct tuple_size<pair<T1, T2>>;
|
127 | 127 | template<size_t I, class T1, class T2> struct tuple_element<I, pair<T1, T2>>;
|
|
1018 | 1018 | constexpr T make_from_tuple(Tuple&& t);
|
1019 | 1019 |
|
1020 | 1020 | // \ref{tuple.helper}, tuple helper classes
|
1021 |
| - template<class T> class tuple_size; // not defined |
1022 |
| - template<class T> class tuple_size<const T>; |
1023 |
| - template<class T> class tuple_size<volatile T>; |
1024 |
| - template<class T> class tuple_size<const volatile T>; |
| 1021 | + template<class T> struct tuple_size; // not defined |
| 1022 | + template<class T> struct tuple_size<const T>; |
| 1023 | + template<class T> struct tuple_size<volatile T>; |
| 1024 | + template<class T> struct tuple_size<const volatile T>; |
1025 | 1025 |
|
1026 |
| - template<class... Types> class tuple_size<tuple<Types...>>; |
| 1026 | + template<class... Types> struct tuple_size<tuple<Types...>>; |
1027 | 1027 |
|
1028 |
| - template<size_t I, class T> class tuple_element; // not defined |
1029 |
| - template<size_t I, class T> class tuple_element<I, const T>; |
1030 |
| - template<size_t I, class T> class tuple_element<I, volatile T>; |
1031 |
| - template<size_t I, class T> class tuple_element<I, const volatile T>; |
| 1028 | + template<size_t I, class T> struct tuple_element; // not defined |
| 1029 | + template<size_t I, class T> struct tuple_element<I, const T>; |
| 1030 | + template<size_t I, class T> struct tuple_element<I, volatile T>; |
| 1031 | + template<size_t I, class T> struct tuple_element<I, const volatile T>; |
1032 | 1032 |
|
1033 | 1033 | template<size_t I, class... Types>
|
1034 |
| - class tuple_element<I, tuple<Types...>>; |
| 1034 | + struct tuple_element<I, tuple<Types...>>; |
1035 | 1035 |
|
1036 | 1036 | template<size_t I, class T>
|
1037 | 1037 | using tuple_element_t = typename tuple_element<I, T>::type;
|
|
1794 | 1794 | \indexlibrary{\idxcode{tuple_size}}%
|
1795 | 1795 | \begin{itemdecl}
|
1796 | 1796 | template<class... Types>
|
1797 |
| - class tuple_size<tuple<Types...>> : public integral_constant<size_t, sizeof...(Types)> { }; |
| 1797 | + struct tuple_size<tuple<Types...>> : public integral_constant<size_t, sizeof...(Types)> { }; |
1798 | 1798 | \end{itemdecl}
|
1799 | 1799 |
|
1800 | 1800 | \indexlibrary{\idxcode{tuple_element}}%
|
1801 | 1801 | \begin{itemdecl}
|
1802 | 1802 | template<size_t I, class... Types>
|
1803 |
| - class tuple_element<I, tuple<Types...>> { |
1804 |
| - public: |
| 1803 | + struct tuple_element<I, tuple<Types...>> { |
1805 | 1804 | using type = TI;
|
1806 | 1805 | };
|
1807 | 1806 | \end{itemdecl}
|
|
1819 | 1818 |
|
1820 | 1819 | \indexlibrary{\idxcode{tuple_size}}%
|
1821 | 1820 | \begin{itemdecl}
|
1822 |
| -template<class T> class tuple_size<const T>; |
1823 |
| -template<class T> class tuple_size<volatile T>; |
1824 |
| -template<class T> class tuple_size<const volatile T>; |
| 1821 | +template<class T> struct tuple_size<const T>; |
| 1822 | +template<class T> struct tuple_size<volatile T>; |
| 1823 | +template<class T> struct tuple_size<const volatile T>; |
1825 | 1824 | \end{itemdecl}
|
1826 | 1825 |
|
1827 | 1826 | \begin{itemdescr}
|
|
1857 | 1856 |
|
1858 | 1857 | \indexlibrary{\idxcode{tuple_element}}%
|
1859 | 1858 | \begin{itemdecl}
|
1860 |
| -template<size_t I, class T> class tuple_element<I, const T>; |
1861 |
| -template<size_t I, class T> class tuple_element<I, volatile T>; |
1862 |
| -template<size_t I, class T> class tuple_element<I, const volatile T>; |
| 1859 | +template<size_t I, class T> struct tuple_element<I, const T>; |
| 1860 | +template<size_t I, class T> struct tuple_element<I, volatile T>; |
| 1861 | +template<size_t I, class T> struct tuple_element<I, const volatile T>; |
1863 | 1862 | \end{itemdecl}
|
1864 | 1863 |
|
1865 | 1864 | \begin{itemdescr}
|
|
0 commit comments