@@ -97,7 +97,7 @@ constexpr size_t bits = to_bits(sizeof(Type));
9797template <size_t Bits, std::enable_if_t <is_byte_sized(Bits), bool > = true >
9898constexpr size_t bytes = Bits / byte_bits;
9999
100- // / std_array.
100+ // / std_array/std_vector .
101101// / ---------------------------------------------------------------------------
102102
103103template <typename >
@@ -140,7 +140,7 @@ constexpr size_t size_of()
140140
141141 // Type constraint fails to match as throw is not constexpr.
142142 if (count > (std::numeric_limits<size_t >::max () / size))
143- throw overflow_exception (" type contraint violated" );
143+ throw overflow_exception (" type constraint violated" );
144144
145145 return size * count;
146146}
@@ -151,9 +151,16 @@ template <typename Larger, typename Smaller, size_t Lanes = one,
151151 // //std::enable_if_t<Lanes <= (max_size_t / size_of<Smaller>()), bool> = true>
152152constexpr size_t capacity = size_of<Larger>() / (Lanes * size_of<Smaller>());
153153
154- // / std::tuple decay elements .
154+ // / std::tuple.
155155// / ---------------------------------------------------------------------------
156156
157+ template <typename , typename = void >
158+ struct is_tuple_t : std::false_type {};
159+ template <typename ...Args>
160+ struct is_tuple_t <std::tuple<Args...>> : std::true_type {};
161+ template <typename Type>
162+ constexpr bool is_tuple = is_tuple_t <Type>::value;
163+
157164template <typename Tuple>
158165struct decay_tuple ;
159166
0 commit comments