@@ -79,16 +79,9 @@ namespace xsimd
7979 constexpr bool operator ()(bool x, bool y) const { return x ^ y; }
8080 };
8181
82- template <class F , class SelfPack , class OtherPack , std::size_t ... Indices>
83- static constexpr batch_bool_constant<T, A, F()(std::tuple_element<Indices, SelfPack>::type::value, std::tuple_element<Indices, OtherPack>::type::value)...>
84- apply (detail::index_sequence<Indices...>)
85- {
86- return {};
87- }
88-
8982 template <class F , bool ... OtherValues>
9083 static constexpr auto apply (batch_bool_constant<T, A, Values...>, batch_bool_constant<T, A, OtherValues...>)
91- -> decltype(apply<F, std::tuple<std::integral_constant< bool , Values>...>, std::tuple<std::integral_constant< bool , OtherValues> ...>>(detail::make_index_sequence< sizeof ...(Values)>()))
84+ -> batch_bool_constant<T, A, F()( Values, OtherValues) ...>
9285 {
9386 static_assert (sizeof ...(Values) == sizeof ...(OtherValues), " compatible constant batches" );
9487 return {};
@@ -195,16 +188,9 @@ namespace xsimd
195188 constexpr T operator ()(T x, T y) const { return x ^ y; }
196189 };
197190
198- template <class F , class SelfPack , class OtherPack , std::size_t ... Indices>
199- static constexpr batch_constant<T, A, F()(std::tuple_element<Indices, SelfPack>::type::value, std::tuple_element<Indices, OtherPack>::type::value)...>
200- apply (detail::index_sequence<Indices...>)
201- {
202- return {};
203- }
204-
205191 template <class F , T... OtherValues>
206192 static constexpr auto apply (batch_constant<T, A, Values...>, batch_constant<T, A, OtherValues...>)
207- -> decltype(apply<F, std::tuple<std::integral_constant<T, Values>...>, std::tuple<std::integral_constant<T, OtherValues> ...>>(detail::make_index_sequence< sizeof ...(Values)>()))
193+ -> batch_constant<T, A, F()( Values, OtherValues) ...>
208194 {
209195 static_assert (sizeof ...(Values) == sizeof ...(OtherValues), " compatible constant batches" );
210196 return {};
@@ -255,16 +241,9 @@ namespace xsimd
255241 constexpr bool operator ()(T x, T y) const { return x <= y; }
256242 };
257243
258- template <class F , class SelfPack , class OtherPack , std::size_t ... Indices>
259- static constexpr batch_bool_constant<T, A, F()(std::tuple_element<Indices, SelfPack>::type::value, std::tuple_element<Indices, OtherPack>::type::value)...>
260- apply_bool (detail::index_sequence<Indices...>)
261- {
262- return {};
263- }
264-
265244 template <class F , T... OtherValues>
266245 static constexpr auto apply_bool (batch_constant<T, A, Values...>, batch_constant<T, A, OtherValues...>)
267- -> decltype(apply_bool<F, std::tuple<std::integral_constant<T, Values>...>, std::tuple<std::integral_constant<T, OtherValues> ...>>(detail::make_index_sequence< sizeof ...(Values)>()))
246+ -> batch_bool_constant<T, A, F()( Values, OtherValues) ...>
268247 {
269248 static_assert (sizeof ...(Values) == sizeof ...(OtherValues), " compatible constant batches" );
270249 return {};
0 commit comments