@@ -136,14 +136,14 @@ namespace xsimd
136136 namespace detail
137137 {
138138 // Not using XSIMD_INLINE here as it makes msvc hand got ever on avx512
139- template <size_t N, typename T, typename A, typename U, typename V, typename std::enable_if <N == 0 , int >::type = 0 >
139+ template <size_t N, typename T, typename A, typename U, typename V, std::enable_if_t <N == 0 , int > = 0 >
140140 inline batch<T, A> gather (U const * src, batch<V, A> const & index,
141141 ::xsimd::index<N> I) noexcept
142142 {
143143 return insert (batch<T, A> {}, static_cast <T>(src[index.get (I)]), I);
144144 }
145145
146- template <size_t N, typename T, typename A, typename U, typename V, typename std::enable_if <N != 0 , int >::type = 0 >
146+ template <size_t N, typename T, typename A, typename U, typename V, std::enable_if_t <N != 0 , int > = 0 >
147147 inline batch<T, A>
148148 gather (U const * src, batch<V, A> const & index, ::xsimd::index<N> I) noexcept
149149 {
@@ -397,15 +397,15 @@ namespace xsimd
397397 }
398398
399399 template <class A , bool ... Values, class Mode >
400- XSIMD_INLINE typename std::enable_if <types::has_simd_register<double , A>::value, batch<int64_t , A>>::type
400+ XSIMD_INLINE std::enable_if_t <types::has_simd_register<double , A>::value, batch<int64_t , A>>
401401 load_masked (int64_t const * mem, batch_bool_constant<int64_t , A, Values...>, convert<int64_t >, Mode, requires_arch<A>) noexcept
402402 {
403403 const auto d = load_masked<A>(reinterpret_cast <const double *>(mem), batch_bool_constant<double , A, Values...> {}, convert<double > {}, Mode {}, A {});
404404 return bitwise_cast<int64_t >(d);
405405 }
406406
407407 template <class A , bool ... Values, class Mode >
408- XSIMD_INLINE typename std::enable_if <types::has_simd_register<double , A>::value, batch<uint64_t , A>>::type
408+ XSIMD_INLINE std::enable_if_t <types::has_simd_register<double , A>::value, batch<uint64_t , A>>
409409 load_masked (uint64_t const * mem, batch_bool_constant<uint64_t , A, Values...>, convert<uint64_t >, Mode, requires_arch<A>) noexcept
410410 {
411411 const auto d = load_masked<A>(reinterpret_cast <const double *>(mem), batch_bool_constant<double , A, Values...> {}, convert<double > {}, Mode {}, A {});
@@ -425,14 +425,14 @@ namespace xsimd
425425 }
426426
427427 template <class A , bool ... Values, class Mode >
428- XSIMD_INLINE typename std::enable_if <types::has_simd_register<double , A>::value, void >::type
428+ XSIMD_INLINE std::enable_if_t <types::has_simd_register<double , A>::value, void >
429429 store_masked (int64_t * mem, batch<int64_t , A> const & src, batch_bool_constant<int64_t , A, Values...>, Mode, requires_arch<A>) noexcept
430430 {
431431 store_masked<A>(reinterpret_cast <double *>(mem), bitwise_cast<double >(src), batch_bool_constant<double , A, Values...> {}, Mode {}, A {});
432432 }
433433
434434 template <class A , bool ... Values, class Mode >
435- XSIMD_INLINE typename std::enable_if <types::has_simd_register<double , A>::value, void >::type
435+ XSIMD_INLINE std::enable_if_t <types::has_simd_register<double , A>::value, void >
436436 store_masked (uint64_t * mem, batch<uint64_t , A> const & src, batch_bool_constant<uint64_t , A, Values...>, Mode, requires_arch<A>) noexcept
437437 {
438438 store_masked<A>(reinterpret_cast <double *>(mem), bitwise_cast<double >(src), batch_bool_constant<double , A, Values...> {}, Mode {}, A {});
@@ -483,15 +483,15 @@ namespace xsimd
483483 // Scatter with runtime indexes.
484484 namespace detail
485485 {
486- template <size_t N, typename T, typename A, typename U, typename V, typename std::enable_if <N == 0 , int >::type = 0 >
486+ template <size_t N, typename T, typename A, typename U, typename V, std::enable_if_t <N == 0 , int > = 0 >
487487 XSIMD_INLINE void scatter (batch<T, A> const & src, U* dst,
488488 batch<V, A> const & index,
489489 ::xsimd::index<N> I) noexcept
490490 {
491491 dst[index.get (I)] = static_cast <U>(src.get (I));
492492 }
493493
494- template <size_t N, typename T, typename A, typename U, typename V, typename std::enable_if <N != 0 , int >::type = 0 >
494+ template <size_t N, typename T, typename A, typename U, typename V, std::enable_if_t <N != 0 , int > = 0 >
495495 XSIMD_INLINE void
496496 scatter (batch<T, A> const & src, U* dst, batch<V, A> const & index,
497497 ::xsimd::index<N> I) noexcept
@@ -829,7 +829,7 @@ namespace xsimd
829829 }
830830
831831 // transpose
832- template <class A , class = typename std::enable_if <batch<int16_t , A>::size == 8 >::type >
832+ template <class A , class = std::enable_if_t <batch<int16_t , A>::size == 8 >>
833833 XSIMD_INLINE void transpose (batch<int16_t , A>* matrix_begin, batch<int16_t , A>* matrix_end, requires_arch<common>) noexcept
834834 {
835835 assert ((matrix_end - matrix_begin == batch<int16_t , A>::size) && " correctly sized matrix" );
@@ -873,7 +873,7 @@ namespace xsimd
873873 transpose (reinterpret_cast <batch<int16_t , A>*>(matrix_begin), reinterpret_cast <batch<int16_t , A>*>(matrix_end), A {});
874874 }
875875
876- template <class A , class = typename std::enable_if <batch<int8_t , A>::size == 16 >::type >
876+ template <class A , class = std::enable_if_t <batch<int8_t , A>::size == 16 >>
877877 XSIMD_INLINE void transpose (batch<int8_t , A>* matrix_begin, batch<int8_t , A>* matrix_end, requires_arch<common>) noexcept
878878 {
879879 assert ((matrix_end - matrix_begin == batch<int8_t , A>::size) && " correctly sized matrix" );
0 commit comments