diff --git a/docs/source/build.rst b/docs/source/build.rst deleted file mode 100644 index e69de29bb..000000000 diff --git a/include/xsimd/arch/common/xsimd_common_details.hpp b/include/xsimd/arch/common/xsimd_common_details.hpp index a99f19319..fc131b909 100644 --- a/include/xsimd/arch/common/xsimd_common_details.hpp +++ b/include/xsimd/arch/common/xsimd_common_details.hpp @@ -301,13 +301,11 @@ namespace xsimd using type = with_slow_conversion; }; - using xsimd::detail::void_t; - template struct conversion_type_impl&>(), - std::declval&>(), - std::declval()))>> + std::void_t&>(), + std::declval&>(), + std::declval()))>> { using type = with_fast_conversion; }; diff --git a/include/xsimd/memory/xsimd_alignment.hpp b/include/xsimd/memory/xsimd_alignment.hpp index 30c2d16de..92f8edd87 100644 --- a/include/xsimd/memory/xsimd_alignment.hpp +++ b/include/xsimd/memory/xsimd_alignment.hpp @@ -74,7 +74,7 @@ namespace xsimd }; template - struct container_alignment> + struct container_alignment> { using type = allocator_alignment_t; }; diff --git a/include/xsimd/types/xsimd_api.hpp b/include/xsimd/types/xsimd_api.hpp index b1ec3e58f..19e81784d 100644 --- a/include/xsimd/types/xsimd_api.hpp +++ b/include/xsimd/types/xsimd_api.hpp @@ -371,7 +371,7 @@ namespace xsimd template struct has_bitwise_lshift_batch_const< Arch, Batch, BatchConstant, - void_t( + std::void_t( std::declval(), std::declval(), Arch {}))>> : std::true_type { diff --git a/include/xsimd/types/xsimd_utils.hpp b/include/xsimd/types/xsimd_utils.hpp index 5dbab8551..847d889d5 100644 --- a/include/xsimd/types/xsimd_utils.hpp +++ b/include/xsimd/types/xsimd_utils.hpp @@ -190,9 +190,8 @@ namespace xsimd inline To bit_cast(From val) noexcept { static_assert(sizeof(From) == sizeof(To), "casting between compatible layout"); - // FIXME: Some old version of GCC don't support that trait - // static_assert(std::is_trivially_copyable::value, "input type is trivially copyable"); - // static_assert(std::is_trivially_copyable::value, "output type is trivially copyable"); + static_assert(std::is_trivially_copyable::value, "input type is trivially copyable"); + static_assert(std::is_trivially_copyable::value, "output type is trivially copyable"); To res; std::memcpy(&res, &val, sizeof(val)); return res; @@ -255,19 +254,13 @@ namespace xsimd } // namespace detail } // namespace kernel - /***************************************** - * Backport of index_sequence from c++14 * - *****************************************/ + /******************************************** + * int_sequence and make_sequence_as_bactch * + ********************************************/ // TODO: Remove this once we drop C++11 support namespace detail { - template - struct identity - { - using type = T; - }; - template using int_sequence = std::integer_sequence; @@ -291,38 +284,6 @@ namespace xsimd } } - /********************************* - * Backport of void_t from C++17 * - *********************************/ - - namespace detail - { - template - struct make_void - { - using type = void; - }; - - template - using void_t = typename make_void::type; - } - - /************************************************** - * Equivalent of void_t but with size_t parameter * - **************************************************/ - - namespace detail - { - template - struct check_size - { - using type = void; - }; - - template - using check_size_t = typename check_size::type; - } - /***************************************** * Supplementary std::array constructors * *****************************************/