diff --git a/libs/core/algorithms/include/hpx/algorithms/traits/is_pair.hpp b/libs/core/algorithms/include/hpx/algorithms/traits/is_pair.hpp index 3272051bb22e..c2cdb7f63d99 100644 --- a/libs/core/algorithms/include/hpx/algorithms/traits/is_pair.hpp +++ b/libs/core/algorithms/include/hpx/algorithms/traits/is_pair.hpp @@ -15,6 +15,6 @@ namespace hpx::traits { HPX_CXX_CORE_EXPORT template inline constexpr bool is_pair_v = false; - HPX_CXX_CORE_EXPORT template + template inline constexpr bool is_pair_v> = true; } // namespace hpx::traits diff --git a/libs/core/algorithms/include/hpx/algorithms/traits/pointer_category.hpp b/libs/core/algorithms/include/hpx/algorithms/traits/pointer_category.hpp index 40ce683993fd..989aaf62261e 100644 --- a/libs/core/algorithms/include/hpx/algorithms/traits/pointer_category.hpp +++ b/libs/core/algorithms/include/hpx/algorithms/traits/pointer_category.hpp @@ -41,7 +41,7 @@ namespace hpx::traits { using type = std::underlying_type_t; }; - HPX_CXX_CORE_EXPORT template + template struct unwrap_enum { using type = T; @@ -69,7 +69,7 @@ namespace hpx::traits { }; // every type is layout-compatible with itself - HPX_CXX_CORE_EXPORT template + template struct pointer_category_helper { using type = std::conditional_t, @@ -77,19 +77,19 @@ namespace hpx::traits { }; // pointers are layout compatible - HPX_CXX_CORE_EXPORT template + template struct pointer_category_helper { using type = trivially_copyable_pointer_tag; }; - HPX_CXX_CORE_EXPORT template + template struct pointer_category_helper { using type = trivially_copyable_pointer_tag; }; - HPX_CXX_CORE_EXPORT template + template struct pointer_category_helper { using type = trivially_copyable_pointer_tag; @@ -116,7 +116,7 @@ namespace hpx::traits { general_pointer_tag>; }; - HPX_CXX_CORE_EXPORT template + template struct pointer_move_category { using type = general_pointer_tag; @@ -134,7 +134,7 @@ namespace hpx::traits { general_pointer_tag>; }; - HPX_CXX_CORE_EXPORT template + template struct pointer_copy_category { using type = general_pointer_tag; @@ -150,7 +150,7 @@ namespace hpx::traits { relocatable_pointer_tag, general_pointer_tag>; }; - HPX_CXX_CORE_EXPORT template + template struct pointer_relocate_category { using type = general_pointer_tag; diff --git a/libs/core/algorithms/include/hpx/algorithms/traits/projected.hpp b/libs/core/algorithms/include/hpx/algorithms/traits/projected.hpp index 0ef3f4537429..4e992c10dd76 100644 --- a/libs/core/algorithms/include/hpx/algorithms/traits/projected.hpp +++ b/libs/core/algorithms/include/hpx/algorithms/traits/projected.hpp @@ -28,7 +28,7 @@ namespace hpx::traits { // For segmented iterators, we consider the local_raw_iterator instead of // the given one. - HPX_CXX_CORE_EXPORT template + template struct projected_iterator>> { @@ -39,7 +39,7 @@ namespace hpx::traits { local_iterator>::local_raw_iterator; }; - HPX_CXX_CORE_EXPORT template + template struct projected_iterator::proxy_type>> { @@ -59,7 +59,7 @@ namespace hpx::parallel::traits { typename Enable = void> struct projected_result_of; - HPX_CXX_CORE_EXPORT template + template struct projected_result_of>> : hpx::util::invoke_result> @@ -92,7 +92,7 @@ namespace hpx::parallel::traits { typename Enable = void> struct projected_result_of_vector_pack; - HPX_CXX_CORE_EXPORT template + template struct projected_result_of_vector_pack> : projected_result_of_vector_pack_ + template struct is_projected && @@ -142,7 +142,7 @@ namespace hpx::parallel::traits { { }; - HPX_CXX_CORE_EXPORT template + template struct is_projected_indirect> : detail::is_projected + template struct is_projected_zip_iterator> : hpx::traits::is_zip_iterator @@ -201,8 +201,7 @@ namespace hpx::parallel::traits { { }; - HPX_CXX_CORE_EXPORT template + template struct is_indirect_callable, std::enable_if_t< hpx::util::all_of_v...> && @@ -218,8 +217,7 @@ namespace hpx::parallel::traits { // Vector pack execution policies used with zip-iterators require // special handling because zip_iterator<>::reference is not a real // reference type. - HPX_CXX_CORE_EXPORT template + template struct is_indirect_callable, std::enable_if_t< hpx::util::all_of_v...> && diff --git a/libs/core/algorithms/include/hpx/algorithms/traits/projected_range.hpp b/libs/core/algorithms/include/hpx/algorithms/traits/projected_range.hpp index dc4550dce90a..27ccfffb1cd6 100644 --- a/libs/core/algorithms/include/hpx/algorithms/traits/projected_range.hpp +++ b/libs/core/algorithms/include/hpx/algorithms/traits/projected_range.hpp @@ -21,7 +21,7 @@ namespace hpx::parallel::traits { { }; - HPX_CXX_CORE_EXPORT template + template struct projected_range_result_of>> : detail::projected_result_of, @@ -36,7 +36,7 @@ namespace hpx::parallel::traits { { }; - HPX_CXX_CORE_EXPORT template + template struct is_projected_range>> : detail::is_projected, std::ranges::iterator_t> @@ -54,7 +54,7 @@ namespace hpx::parallel::traits { { }; - HPX_CXX_CORE_EXPORT template + template struct projected_range>> { using projector_type = std::decay_t; diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/copy.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/copy.hpp index dc0071d214a2..203f92dfdd6c 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/copy.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/copy.hpp @@ -439,7 +439,7 @@ namespace hpx::parallel { typename Enable = void> struct copy_iter; - HPX_CXX_CORE_EXPORT template + template struct copy_iter::value>> @@ -451,7 +451,7 @@ namespace hpx::parallel { { }; - HPX_CXX_CORE_EXPORT template + template struct copy_iter::value>> diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/detail/dispatch.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/detail/dispatch.hpp index e6941755a28f..dfdd20ad739b 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/detail/dispatch.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/detail/dispatch.hpp @@ -35,7 +35,7 @@ namespace hpx::parallel::detail { Result>::local_raw_iterator; }; - HPX_CXX_CORE_EXPORT template + template struct local_algorithm_result> { using type1 = typename hpx::traits::segmented_local_iterator_traits< @@ -46,7 +46,7 @@ namespace hpx::parallel::detail { using type = util::in_out_result; }; - HPX_CXX_CORE_EXPORT template + template struct local_algorithm_result> { using type1 = typename hpx::traits::segmented_local_iterator_traits< @@ -55,8 +55,7 @@ namespace hpx::parallel::detail { using type = util::min_max_result; }; - HPX_CXX_CORE_EXPORT template + template struct local_algorithm_result< util::in_in_out_result> { diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/for_each.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/for_each.hpp index 963d27626f07..482222c1e9d3 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/for_each.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/for_each.hpp @@ -327,7 +327,7 @@ namespace hpx::parallel { } }; - HPX_CXX_CORE_EXPORT template + template struct for_each_iteration { using execution_policy_type = std::decay_t; diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop.hpp index 871178aaf950..90ae90f01351 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop.hpp @@ -811,8 +811,7 @@ namespace hpx::parallel { typename S = void, typename Tuple = hpx::tuple<>> struct part_iterations; - HPX_CXX_CORE_EXPORT template + template struct part_iterations> { using fun_type = std::decay_t; @@ -915,7 +914,7 @@ namespace hpx::parallel { } }; - HPX_CXX_CORE_EXPORT template + template struct part_iterations> { using fun_type = std::decay_t; @@ -1016,8 +1015,7 @@ namespace hpx::parallel { } }; - HPX_CXX_CORE_EXPORT template + template struct part_iterations> { using fun_type = std::decay_t; @@ -1097,7 +1095,7 @@ namespace hpx::parallel { } }; - HPX_CXX_CORE_EXPORT template + template struct part_iterations> { using fun_type = std::decay_t; diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop_induction.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop_induction.hpp index e0ec1c358485..d76d9194889a 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop_induction.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/for_loop_induction.hpp @@ -58,7 +58,7 @@ namespace hpx::parallel::detail { T curr_; }; - HPX_CXX_CORE_EXPORT template + template struct induction_helper { explicit constexpr induction_helper(T& var) noexcept @@ -138,7 +138,7 @@ namespace hpx::parallel::detail { std::size_t stride_; }; - HPX_CXX_CORE_EXPORT template + template struct induction_stride_helper { constexpr induction_stride_helper(T& var, std::size_t stride) noexcept diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/move.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/move.hpp index 97e5af73feb7..aca83bf0d179 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/move.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/move.hpp @@ -185,7 +185,7 @@ namespace hpx::parallel { typename Enable = void> struct move; - HPX_CXX_CORE_EXPORT template + template struct move::value>> @@ -197,7 +197,7 @@ namespace hpx::parallel { { }; - HPX_CXX_CORE_EXPORT template + template struct move::value>> diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/shift_right.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/shift_right.hpp index a32f2d0bf0de..da5e981c6f1a 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/shift_right.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/shift_right.hpp @@ -180,7 +180,7 @@ namespace hpx::parallel { HPX_CXX_CORE_EXPORT template inline constexpr bool is_category = false; - HPX_CXX_CORE_EXPORT template + template inline constexpr bool is_category, Tag>>> = true; @@ -321,8 +321,7 @@ namespace hpx { std::is_integral_v ) // clang-format on - friend typename hpx::parallel::util::detail::algorithm_result::type + friend parallel::util::detail::algorithm_result_t tag_fallback_invoke(shift_right_t, ExPolicy&& policy, FwdIter first, FwdIter last, Size n) { diff --git a/libs/core/algorithms/include/hpx/parallel/algorithms/transform.hpp b/libs/core/algorithms/include/hpx/parallel/algorithms/transform.hpp index f83178bb24ce..349cba1a4a80 100644 --- a/libs/core/algorithms/include/hpx/parallel/algorithms/transform.hpp +++ b/libs/core/algorithms/include/hpx/parallel/algorithms/transform.hpp @@ -332,7 +332,7 @@ namespace hpx::parallel { } }; - HPX_CXX_CORE_EXPORT template + template struct transform_projected { std::decay_t f_{}; @@ -407,7 +407,7 @@ namespace hpx::parallel { } }; - HPX_CXX_CORE_EXPORT template + template struct transform_iteration { using execution_policy_type = std::decay_t; @@ -631,7 +631,7 @@ namespace hpx::parallel { } }; - HPX_CXX_CORE_EXPORT template + template struct transform_binary_iteration { diff --git a/libs/core/algorithms/include/hpx/parallel/container_algorithms/contains.hpp b/libs/core/algorithms/include/hpx/parallel/container_algorithms/contains.hpp index ba227e97cf98..77faf6359778 100644 --- a/libs/core/algorithms/include/hpx/parallel/container_algorithms/contains.hpp +++ b/libs/core/algorithms/include/hpx/parallel/container_algorithms/contains.hpp @@ -86,7 +86,7 @@ namespace hpx::parallel::detail { typename Enable = void> struct contains_subrange_helper; - HPX_CXX_CORE_EXPORT template + template struct contains_subrange_helper>> { @@ -96,7 +96,7 @@ namespace hpx::parallel::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct contains_subrange_helper>> { @@ -200,8 +200,7 @@ namespace hpx::ranges { typename std::iterator_traits::value_type> ) // clang-format on - friend typename parallel::util::detail::algorithm_result::type + friend parallel::util::detail::algorithm_result_t tag_fallback_invoke(hpx::ranges::contains_t, ExPolicy&& policy, Iterator first, Sentinel last, T const& val, Proj&& proj = Proj()) { @@ -225,8 +224,7 @@ namespace hpx::ranges { hpx::parallel::traits::is_projected_range_v ) // clang-format on - friend typename parallel::util::detail::algorithm_result::type + friend parallel::util::detail::algorithm_result_t tag_fallback_invoke(hpx::ranges::contains_t, ExPolicy&& policy, Rng&& rng, T const& t, Proj proj = Proj()) { @@ -318,8 +316,7 @@ namespace hpx::ranges { typename std::iterator_traits::value_type> ) // clang-format on - friend typename parallel::util::detail::algorithm_result::type + friend parallel::util::detail::algorithm_result_t tag_fallback_invoke(hpx::ranges::contains_subrange_t, ExPolicy&& policy, FwdIter1 first1, Sent1 last1, FwdIter2 first2, Sent2 last2, Pred pred = Pred(), Proj1&& proj1 = Proj1(), @@ -352,8 +349,7 @@ namespace hpx::ranges { > ) // clang-format on - friend typename parallel::util::detail::algorithm_result::type + friend parallel::util::detail::algorithm_result_t tag_fallback_invoke(hpx::ranges::contains_subrange_t, ExPolicy&& policy, Rng1&& rng1, Rng2&& rng2, Pred pred = Pred(), Proj1 proj1 = Proj1(), Proj2 proj2 = Proj2()) diff --git a/libs/core/algorithms/include/hpx/parallel/datapar/iterator_helpers.hpp b/libs/core/algorithms/include/hpx/parallel/datapar/iterator_helpers.hpp index 3e7b92496e12..e7aae8915c59 100644 --- a/libs/core/algorithms/include/hpx/parallel/datapar/iterator_helpers.hpp +++ b/libs/core/algorithms/include/hpx/parallel/datapar/iterator_helpers.hpp @@ -31,7 +31,7 @@ namespace hpx::parallel::util::detail { { }; - HPX_CXX_CORE_EXPORT template + template struct is_lvalue_ref> : hpx::util::all_of...> { @@ -105,7 +105,7 @@ namespace hpx::parallel::util::detail { { }; - HPX_CXX_CORE_EXPORT template + template struct iterator_datapar_compatible>> : iterator_datapar_compatible_impl>::type @@ -201,7 +201,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct datapar_loop_step>> { diff --git a/libs/core/algorithms/include/hpx/parallel/datapar/loop.hpp b/libs/core/algorithms/include/hpx/parallel/datapar/loop.hpp index 8f253657a13f..b1cee7e99050 100644 --- a/libs/core/algorithms/include/hpx/parallel/datapar/loop.hpp +++ b/libs/core/algorithms/include/hpx/parallel/datapar/loop.hpp @@ -272,7 +272,7 @@ namespace hpx::parallel::util { typename Enable = void> struct datapar_loop_n; - HPX_CXX_CORE_EXPORT template + template struct datapar_loop_n>> { @@ -362,7 +362,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct datapar_loop_n>> { diff --git a/libs/core/algorithms/include/hpx/parallel/datapar/zip_iterator.hpp b/libs/core/algorithms/include/hpx/parallel/datapar/zip_iterator.hpp index d5c35b0283a4..7fba34576218 100644 --- a/libs/core/algorithms/include/hpx/parallel/datapar/zip_iterator.hpp +++ b/libs/core/algorithms/include/hpx/parallel/datapar/zip_iterator.hpp @@ -23,7 +23,7 @@ namespace hpx::parallel::util::detail { /////////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct is_data_aligned_impl> { template @@ -43,7 +43,7 @@ namespace hpx::parallel::util::detail { }; /////////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct iterator_datapar_compatible_impl> : hpx::util::all_of::value_type>...> @@ -84,7 +84,7 @@ namespace hpx::parallel::traits { } } // namespace detail - HPX_CXX_CORE_EXPORT template + template struct vector_pack_load, ValueType> { using value_type = hpx::tuple; @@ -136,7 +136,7 @@ namespace hpx::parallel::traits { } } // namespace detail - HPX_CXX_CORE_EXPORT template + template struct vector_pack_store, ValueType> { template diff --git a/libs/core/algorithms/include/hpx/parallel/util/compare_projected.hpp b/libs/core/algorithms/include/hpx/parallel/util/compare_projected.hpp index f71b8bd16d63..ad4ece7ebd50 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/compare_projected.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/compare_projected.hpp @@ -20,7 +20,7 @@ namespace hpx::parallel::util { struct compare_projected; /////////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct compare_projected { template @@ -41,7 +41,7 @@ namespace hpx::parallel::util { Proj proj_; }; - HPX_CXX_CORE_EXPORT template + template struct compare_projected { template @@ -60,8 +60,7 @@ namespace hpx::parallel::util { }; /////////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct compare_projected { template @@ -85,7 +84,7 @@ namespace hpx::parallel::util { Proj2 proj2_; }; - HPX_CXX_CORE_EXPORT template + template struct compare_projected { template @@ -107,7 +106,7 @@ namespace hpx::parallel::util { Proj2 proj2_; }; - HPX_CXX_CORE_EXPORT template + template struct compare_projected { template @@ -129,7 +128,7 @@ namespace hpx::parallel::util { Proj1 proj1_; }; - HPX_CXX_CORE_EXPORT template + template struct compare_projected { template diff --git a/libs/core/algorithms/include/hpx/parallel/util/detail/algorithm_result.hpp b/libs/core/algorithms/include/hpx/parallel/util/detail/algorithm_result.hpp index cb69dded85db..5a933eab6426 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/detail/algorithm_result.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/detail/algorithm_result.hpp @@ -28,7 +28,7 @@ namespace hpx::parallel::util::detail { typename Enable = void> struct algorithm_result_impl; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && !hpx::execution_policy_has_scheduler_executor_v>> @@ -56,7 +56,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && !hpx::execution_policy_has_scheduler_executor_v>> @@ -81,7 +81,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && !hpx::execution_policy_has_scheduler_executor_v>> @@ -101,7 +101,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && !hpx::execution_policy_has_scheduler_executor_v>> @@ -132,7 +132,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && hpx::execution_policy_has_scheduler_executor_v>> @@ -172,7 +172,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && hpx::execution_policy_has_scheduler_executor_v>> @@ -194,7 +194,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && hpx::execution_policy_has_scheduler_executor_v>> @@ -218,7 +218,7 @@ namespace hpx::parallel::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct algorithm_result_impl && hpx::execution_policy_has_scheduler_executor_v>> diff --git a/libs/core/algorithms/include/hpx/parallel/util/detail/chunk_size_iterator.hpp b/libs/core/algorithms/include/hpx/parallel/util/detail/chunk_size_iterator.hpp index d4053f655e92..c6ee30cc1a03 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/detail/chunk_size_iterator.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/detail/chunk_size_iterator.hpp @@ -26,28 +26,28 @@ namespace hpx::parallel::util::detail { HPX_CXX_CORE_EXPORT template struct chunk_size_iterator_category; - HPX_CXX_CORE_EXPORT template + template struct chunk_size_iterator_category>> { using type = std::random_access_iterator_tag; }; - HPX_CXX_CORE_EXPORT template + template struct chunk_size_iterator_category>> { using type = hpx::traits::iter_category_t; }; - HPX_CXX_CORE_EXPORT template + template struct chunk_size_iterator_category>> { using type = hpx::traits::range_category_t; }; - HPX_CXX_CORE_EXPORT template + template struct chunk_size_iterator_category>> { @@ -61,7 +61,7 @@ namespace hpx::parallel::util::detail { HPX_CXX_CORE_EXPORT template struct iterator_type; - HPX_CXX_CORE_EXPORT template + template struct iterator_type || hpx::traits::is_range_generator_v>> @@ -69,14 +69,14 @@ namespace hpx::parallel::util::detail { using type = T; }; - HPX_CXX_CORE_EXPORT template + template struct iterator_type>> { using type = Iterator; }; - HPX_CXX_CORE_EXPORT template + template struct iterator_type>> { using type = std::ranges::iterator_t; diff --git a/libs/core/algorithms/include/hpx/parallel/util/detail/handle_local_exceptions.hpp b/libs/core/algorithms/include/hpx/parallel/util/detail/handle_local_exceptions.hpp index 4214ced46611..40c80e8ccce1 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/detail/handle_local_exceptions.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/detail/handle_local_exceptions.hpp @@ -771,7 +771,7 @@ namespace hpx::parallel::util::detail { }; // unseq et.al. need to terminate on exceptions - HPX_CXX_CORE_EXPORT template + template struct handle_local_exceptions>> : terminate_on_local_exceptions diff --git a/libs/core/algorithms/include/hpx/parallel/util/detail/select_partitioner.hpp b/libs/core/algorithms/include/hpx/parallel/util/detail/select_partitioner.hpp index 88d27f5d7162..58298dd04fdc 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/detail/select_partitioner.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/detail/select_partitioner.hpp @@ -23,8 +23,7 @@ namespace hpx::parallel::util::detail { using apply = Partitioner; }; - HPX_CXX_CORE_EXPORT template class Partitioner, + template class Partitioner, template class TaskPartitioner> struct select_partitioner && diff --git a/libs/core/algorithms/include/hpx/parallel/util/detail/sender_util.hpp b/libs/core/algorithms/include/hpx/parallel/util/detail/sender_util.hpp index 91613cd668ec..d5f7703a12f3 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/detail/sender_util.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/detail/sender_util.hpp @@ -41,7 +41,7 @@ namespace hpx::detail { { }; - HPX_CXX_CORE_EXPORT template + template struct is_bound_algorithm> : std::true_type { }; diff --git a/libs/core/algorithms/include/hpx/parallel/util/invoke_projected.hpp b/libs/core/algorithms/include/hpx/parallel/util/invoke_projected.hpp index 1085b35c34b6..5fd136dab3d8 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/invoke_projected.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/invoke_projected.hpp @@ -51,7 +51,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct invoke_projected { using pred_type = std::decay_t; @@ -107,7 +107,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct invoke_projected_ind { using pred_type = std::decay_t; diff --git a/libs/core/algorithms/include/hpx/parallel/util/prefetching.hpp b/libs/core/algorithms/include/hpx/parallel/util/prefetching.hpp index 9a8cf1045b10..023119690710 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/prefetching.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/prefetching.hpp @@ -462,7 +462,7 @@ namespace hpx::parallel::util { namespace detail { /////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct loop> { using iterator_type = prefetching::prefetching_iterator; @@ -522,7 +522,7 @@ namespace hpx::parallel::util { }; /////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct loop_ind> { using iterator_type = prefetching::prefetching_iterator; diff --git a/libs/core/algorithms/include/hpx/parallel/util/transfer.hpp b/libs/core/algorithms/include/hpx/parallel/util/transfer.hpp index f3faec0c0d26..764f3762b6f9 100644 --- a/libs/core/algorithms/include/hpx/parallel/util/transfer.hpp +++ b/libs/core/algorithms/include/hpx/parallel/util/transfer.hpp @@ -138,7 +138,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct copy_helper { template @@ -201,7 +201,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct copy_n_helper { template @@ -293,7 +293,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct move_helper { template @@ -349,7 +349,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct move_n_helper { template @@ -394,7 +394,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct uninit_copy_n_helper { @@ -454,7 +454,7 @@ namespace hpx::parallel::util { } }; - HPX_CXX_CORE_EXPORT template + template struct uninit_move_n_helper { diff --git a/libs/core/allocator_support/include/hpx/allocator_support/traits/is_allocator.hpp b/libs/core/allocator_support/include/hpx/allocator_support/traits/is_allocator.hpp index 53248115707e..c720ffa271bc 100644 --- a/libs/core/allocator_support/include/hpx/allocator_support/traits/is_allocator.hpp +++ b/libs/core/allocator_support/include/hpx/allocator_support/traits/is_allocator.hpp @@ -66,7 +66,7 @@ namespace hpx::traits { std::declval(), std::declval()))::value; }; - HPX_CXX_CORE_EXPORT template + template struct has_deallocate { static constexpr bool value = false; diff --git a/libs/core/async_base/include/hpx/async_base/scheduling_properties.hpp b/libs/core/async_base/include/hpx/async_base/scheduling_properties.hpp index 1ffa3551898d..659702fdfc9a 100644 --- a/libs/core/async_base/include/hpx/async_base/scheduling_properties.hpp +++ b/libs/core/async_base/include/hpx/async_base/scheduling_properties.hpp @@ -52,7 +52,7 @@ namespace hpx::execution::experimental { } // namespace detail /////////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct is_scheduling_property, Property>>> diff --git a/libs/core/compute_local/include/hpx/compute_local/detail/get_proxy_type.hpp b/libs/core/compute_local/include/hpx/compute_local/detail/get_proxy_type.hpp index 954acde05f35..fca8dd88d17c 100644 --- a/libs/core/compute_local/include/hpx/compute_local/detail/get_proxy_type.hpp +++ b/libs/core/compute_local/include/hpx/compute_local/detail/get_proxy_type.hpp @@ -20,7 +20,7 @@ namespace hpx::compute::detail { using type = T; }; - HPX_CXX_CORE_EXPORT template + template struct get_proxy_type_impl::proxy_type>> { diff --git a/libs/core/compute_local/include/hpx/compute_local/host/block_executor.hpp b/libs/core/compute_local/include/hpx/compute_local/host/block_executor.hpp index 4e71e108e284..0631d94fe1ff 100644 --- a/libs/core/compute_local/include/hpx/compute_local/host/block_executor.hpp +++ b/libs/core/compute_local/include/hpx/compute_local/host/block_executor.hpp @@ -342,38 +342,38 @@ namespace hpx::compute::host { namespace hpx::execution::experimental { - HPX_CXX_CORE_EXPORT template + template struct executor_execution_category> { using type = hpx::execution::parallel_execution_tag; }; - HPX_CXX_CORE_EXPORT template + template struct is_never_blocking_one_way_executor< compute::host::block_executor> : is_never_blocking_one_way_executor { }; - HPX_CXX_CORE_EXPORT template + template struct is_one_way_executor> : is_one_way_executor { }; - HPX_CXX_CORE_EXPORT template + template struct is_two_way_executor> : is_two_way_executor { }; - HPX_CXX_CORE_EXPORT template + template struct is_bulk_one_way_executor> : is_bulk_one_way_executor { }; - HPX_CXX_CORE_EXPORT template + template struct is_bulk_two_way_executor> : is_bulk_two_way_executor { diff --git a/libs/core/compute_local/include/hpx/compute_local/traits/allocator_traits.hpp b/libs/core/compute_local/include/hpx/compute_local/traits/allocator_traits.hpp index 47bb0b475c64..f16cc06702c6 100644 --- a/libs/core/compute_local/include/hpx/compute_local/traits/allocator_traits.hpp +++ b/libs/core/compute_local/include/hpx/compute_local/traits/allocator_traits.hpp @@ -32,7 +32,7 @@ namespace hpx::compute::traits { using type = compute::traits::access_target; }; - HPX_CXX_CORE_EXPORT template + template struct get_target_traits> { @@ -51,7 +51,7 @@ namespace hpx::compute::traits { }; #endif - HPX_CXX_CORE_EXPORT template + template struct get_reference_type> { @@ -70,7 +70,7 @@ namespace hpx::compute::traits { }; #endif - HPX_CXX_CORE_EXPORT template + template struct get_const_reference_type> { @@ -84,7 +84,7 @@ namespace hpx::compute::traits { using type = compute::host::target; }; - HPX_CXX_CORE_EXPORT template + template struct target_helper_result> { diff --git a/libs/core/compute_local/include/hpx/compute_local/vector.hpp b/libs/core/compute_local/include/hpx/compute_local/vector.hpp index a18c70b7c1c8..acea8c0443c6 100644 --- a/libs/core/compute_local/include/hpx/compute_local/vector.hpp +++ b/libs/core/compute_local/include/hpx/compute_local/vector.hpp @@ -526,8 +526,11 @@ namespace hpx::compute { } } // namespace hpx::compute -HPX_CXX_CORE_EXPORT template -struct hpx::traits::is_contiguous_iterator< - hpx::compute::detail::iterator> : std::true_type -{ -}; +namespace hpx::traits { + + template + struct is_contiguous_iterator> + : std::true_type + { + }; +} // namespace hpx::traits diff --git a/libs/core/concepts/include/hpx/concepts/has_member_xxx.hpp b/libs/core/concepts/include/hpx/concepts/has_member_xxx.hpp index 79a72e9d680c..d4867eeec0e2 100644 --- a/libs/core/concepts/include/hpx/concepts/has_member_xxx.hpp +++ b/libs/core/concepts/include/hpx/concepts/has_member_xxx.hpp @@ -43,7 +43,7 @@ { \ }; \ \ - Prefix template \ + template \ struct impl>::Member>> \ : std::false_type \ @@ -57,7 +57,7 @@ { \ }; \ \ - Prefix template \ + template \ struct HPX_PP_CAT(has_, Member)>> \ : HPX_PP_CAT(HPX_PP_CAT(has_, Member), _detail)::impl \ { \ diff --git a/libs/core/concepts/include/hpx/concepts/has_xxx.hpp b/libs/core/concepts/include/hpx/concepts/has_xxx.hpp index a0c28599b402..093c9dd52bd1 100644 --- a/libs/core/concepts/include/hpx/concepts/has_xxx.hpp +++ b/libs/core/concepts/include/hpx/concepts/has_xxx.hpp @@ -23,7 +23,7 @@ { \ }; \ \ - Prefix template \ + template \ struct HPX_PP_CAT(has_, Name)> \ : std::true_type \ { \ diff --git a/libs/core/concurrency/include/hpx/concurrency/cache_line_data.hpp b/libs/core/concurrency/include/hpx/concurrency/cache_line_data.hpp index 38fac827a133..8b502cd69fe8 100644 --- a/libs/core/concurrency/include/hpx/concurrency/cache_line_data.hpp +++ b/libs/core/concurrency/include/hpx/concurrency/cache_line_data.hpp @@ -84,7 +84,7 @@ namespace hpx::util { sizeof(Data))]; }; - HPX_CXX_CORE_EXPORT template + template struct cache_aligned_data { constexpr cache_aligned_data() noexcept( @@ -133,7 +133,7 @@ namespace hpx::util { sizeof(Data))]; }; - HPX_CXX_CORE_EXPORT template + template struct cache_aligned_data_derived : Data { constexpr cache_aligned_data_derived() noexcept( diff --git a/libs/core/datastructures/include/hpx/datastructures/any.hpp b/libs/core/datastructures/include/hpx/datastructures/any.hpp index f910903092ad..c5ac3a9a55e8 100644 --- a/libs/core/datastructures/include/hpx/datastructures/any.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/any.hpp @@ -130,7 +130,7 @@ namespace hpx::util::detail::any { }; //////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct fxn_ptr_table : fxn_ptr_table { @@ -158,27 +158,28 @@ namespace hpx::util::detail::any { struct streaming_base; // no streaming support - HPX_CXX_CORE_EXPORT template + template struct streaming_base { }; - HPX_CXX_CORE_EXPORT template + template struct streaming_base { }; - HPX_CXX_CORE_EXPORT template + + template struct streaming_base { }; - HPX_CXX_CORE_EXPORT template + template struct streaming_base { }; // streaming support is enabled - HPX_CXX_CORE_EXPORT template + template struct streaming_base { template @@ -198,7 +199,7 @@ namespace hpx::util::detail::any { } }; - HPX_CXX_CORE_EXPORT template + template struct streaming_base { template @@ -218,7 +219,7 @@ namespace hpx::util::detail::any { } }; - HPX_CXX_CORE_EXPORT template + template struct streaming_base { template @@ -459,7 +460,7 @@ namespace hpx::util::detail::any { typename Vtable, typename Char, typename Copyable> struct fxn_ptr; - HPX_CXX_CORE_EXPORT template + template struct fxn_ptr : fxn_ptr_table { @@ -482,7 +483,7 @@ namespace hpx::util::detail::any { } }; - HPX_CXX_CORE_EXPORT template + template struct fxn_ptr : fxn_ptr_table { @@ -507,7 +508,7 @@ namespace hpx::util::detail::any { } }; - HPX_CXX_CORE_EXPORT template + template struct fxn_ptr : fxn_ptr_table { @@ -528,7 +529,7 @@ namespace hpx::util::detail::any { } }; - HPX_CXX_CORE_EXPORT template + template struct fxn_ptr : fxn_ptr_table { @@ -835,7 +836,7 @@ namespace hpx::util { //////////////////////////////////////////////////////////////////////////// // specialization for hpx::any supporting streaming - HPX_CXX_CORE_EXPORT template // default is char + template // default is char class basic_any { public: @@ -1189,7 +1190,7 @@ namespace hpx::util { }; // specialization for unique_any supporting streaming - HPX_CXX_CORE_EXPORT template // default is char + template // default is char class basic_any { public: diff --git a/libs/core/datastructures/include/hpx/datastructures/detail/dynamic_bitset.hpp b/libs/core/datastructures/include/hpx/datastructures/detail/dynamic_bitset.hpp index 0ba315d2bd13..0b440376185d 100644 --- a/libs/core/datastructures/include/hpx/datastructures/detail/dynamic_bitset.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/detail/dynamic_bitset.hpp @@ -2013,7 +2013,7 @@ namespace hpx::detail { // std::hash support #include -HPX_CXX_CORE_EXPORT template +template struct std::hash<::hpx::detail::dynamic_bitset> { using argument_type = hpx::detail::dynamic_bitset; diff --git a/libs/core/datastructures/include/hpx/datastructures/member_pack.hpp b/libs/core/datastructures/include/hpx/datastructures/member_pack.hpp index f8f559e918d6..a83ba835903d 100644 --- a/libs/core/datastructures/include/hpx/datastructures/member_pack.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/member_pack.hpp @@ -111,7 +111,7 @@ namespace hpx::util { HPX_CXX_CORE_EXPORT template struct HPX_EMPTY_BASES member_pack; - HPX_CXX_CORE_EXPORT template + template struct HPX_EMPTY_BASES member_pack, Ts...> : detail::member_leaf... { diff --git a/libs/core/datastructures/include/hpx/datastructures/serialization/serializable_any.hpp b/libs/core/datastructures/include/hpx/datastructures/serialization/serializable_any.hpp index 6851d5b1b0c9..2dbe1c8a786b 100644 --- a/libs/core/datastructures/include/hpx/datastructures/serialization/serializable_any.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/serialization/serializable_any.hpp @@ -45,7 +45,7 @@ namespace hpx::util::detail::any { //////////////////////////////////////////////////////////////////////////// // serializable function pointer table - HPX_CXX_CORE_EXPORT template + template requires(!std::is_void_v && !std::is_void_v) struct fxn_ptr_table { @@ -83,8 +83,7 @@ namespace hpx::util::detail::any { }; //////////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template struct fxn_ptr : fxn_ptr_table { @@ -134,7 +133,7 @@ namespace hpx::util::detail::any { namespace hpx::util { //////////////////////////////////////////////////////////////////////////// - HPX_CXX_CORE_EXPORT template + template class basic_any { public: @@ -422,12 +421,11 @@ namespace hpx::util { }; // explicitly instantiate the operator()() - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::size_t - hash_any::operator()(basic_any const& elem) const; + extern template HPX_CORE_EXPORT std::size_t hash_any::operator()( + basic_any const& elem) const; - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::size_t - hash_any::operator()( + extern template HPX_CORE_EXPORT std::size_t hash_any::operator()( basic_any const& elem) const; } // namespace hpx::util diff --git a/libs/core/datastructures/include/hpx/datastructures/serialization/tuple.hpp b/libs/core/datastructures/include/hpx/datastructures/serialization/tuple.hpp index 8fe2fbf12316..3fa26d4cc436 100644 --- a/libs/core/datastructures/include/hpx/datastructures/serialization/tuple.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/serialization/tuple.hpp @@ -20,14 +20,14 @@ namespace hpx::traits { - HPX_CXX_CORE_EXPORT template + template struct is_bitwise_serializable<::hpx::tuple> : ::hpx::util::all_of< hpx::traits::is_bitwise_serializable>...> { }; - HPX_CXX_CORE_EXPORT template + template struct is_not_bitwise_serializable<::hpx::tuple> : std::integral_constant>> @@ -46,8 +46,7 @@ namespace hpx::util::detail { HPX_CXX_CORE_EXPORT template struct save_construct_data_with_index_pack; - HPX_CXX_CORE_EXPORT template + template struct serialize_with_index_pack, Ts...> { @@ -65,8 +64,7 @@ namespace hpx::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct load_construct_data_with_index_pack, Ts...> { @@ -113,8 +111,7 @@ namespace hpx::util::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct save_construct_data_with_index_pack, Ts...> { diff --git a/libs/core/datastructures/include/hpx/datastructures/traits/is_tuple_like.hpp b/libs/core/datastructures/include/hpx/datastructures/traits/is_tuple_like.hpp index 52d83f497396..ba4b621d4fb2 100644 --- a/libs/core/datastructures/include/hpx/datastructures/traits/is_tuple_like.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/traits/is_tuple_like.hpp @@ -19,7 +19,7 @@ namespace hpx::traits { { }; - HPX_CXX_CORE_EXPORT template + template struct is_tuple_like_impl::value)>> : std::true_type { diff --git a/libs/core/datastructures/include/hpx/datastructures/traits/supports_streaming_with_any.hpp b/libs/core/datastructures/include/hpx/datastructures/traits/supports_streaming_with_any.hpp index df41f6b5747d..fd30276b3366 100644 --- a/libs/core/datastructures/include/hpx/datastructures/traits/supports_streaming_with_any.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/traits/supports_streaming_with_any.hpp @@ -23,7 +23,7 @@ namespace hpx::traits { /////////////////////////////////////////////////////////////////////////// // Customization point for streaming with util::any, we don't want // serialization::serialize_buffer to be streamable - HPX_CXX_CORE_EXPORT template + template struct supports_streaming_with_any< serialization::serialize_buffer> : std::false_type { diff --git a/libs/core/datastructures/include/hpx/datastructures/tuple.hpp b/libs/core/datastructures/include/hpx/datastructures/tuple.hpp index 63fd4827edd7..5d8637af60bd 100644 --- a/libs/core/datastructures/include/hpx/datastructures/tuple.hpp +++ b/libs/core/datastructures/include/hpx/datastructures/tuple.hpp @@ -197,12 +197,12 @@ namespace hpx { // Adapt hpx::tuple to be usable with structured binding contexts namespace std { - HPX_CXX_CORE_EXPORT template + template struct tuple_size> : hpx::tuple_size> { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element> : hpx::tuple_element> { @@ -578,41 +578,41 @@ namespace hpx { { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_size : tuple_size { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_size : tuple_size { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_size : tuple_size { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_size> : std::integral_constant { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_size> : std::integral_constant { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_size> : std::integral_constant { }; #if defined(HPX_DATASTRUCTURES_HAVE_ADAPT_STD_TUPLE) - HPX_CXX_CORE_EXPORT template + template struct tuple_size> : std::tuple_size> { }; @@ -628,28 +628,28 @@ namespace hpx { { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element::type>> : std::add_const::type> { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element::type>> : std::add_volatile::type> { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element::type>> : std::add_cv::type> { }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element> { using type = typename util::at_index::type; @@ -667,7 +667,7 @@ namespace hpx { } }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element<0, std::pair> { using type = T0; @@ -685,7 +685,7 @@ namespace hpx { } }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element<1, std::pair> { using type = T1; @@ -703,8 +703,7 @@ namespace hpx { } }; - HPX_CXX_CORE_EXPORT template + template struct tuple_element> { using type = Type; @@ -730,7 +729,7 @@ namespace hpx { }; #if defined(HPX_DATASTRUCTURES_HAVE_ADAPT_STD_TUPLE) - HPX_CXX_CORE_EXPORT template + template struct tuple_element> { using type = std::tuple_element_t>; diff --git a/libs/core/errors/include/hpx/errors/exception_fwd.hpp b/libs/core/errors/include/hpx/errors/exception_fwd.hpp index 0b12aeac2e2f..5e44a352da22 100644 --- a/libs/core/errors/include/hpx/errors/exception_fwd.hpp +++ b/libs/core/errors/include/hpx/errors/exception_fwd.hpp @@ -95,9 +95,9 @@ namespace hpx { [[nodiscard]] HPX_CORE_EXPORT std::exception_ptr construct_lightweight_exception(Exception const& e); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr + extern template HPX_CORE_EXPORT std::exception_ptr construct_lightweight_exception(hpx::exception_list const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr + extern template HPX_CORE_EXPORT std::exception_ptr construct_lightweight_exception(hpx::thread_interrupted const&); } // namespace detail /// \endcond diff --git a/libs/core/errors/include/hpx/errors/throw_exception.hpp b/libs/core/errors/include/hpx/errors/throw_exception.hpp index 2cf1207c712c..cc7f1825bf6f 100644 --- a/libs/core/errors/include/hpx/errors/throw_exception.hpp +++ b/libs/core/errors/include/hpx/errors/throw_exception.hpp @@ -38,44 +38,44 @@ namespace hpx::detail { [[noreturn]] HPX_CORE_EXPORT void throw_exception(Exception const& e, std::string const& func, std::string const& file, long line); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( hpx::exception const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::system_error const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::exception const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( hpx::detail::std_exception const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::bad_exception const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( hpx::detail::bad_exception const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::bad_typeid const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( hpx::detail::bad_typeid const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::bad_cast const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( hpx::detail::bad_cast const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::bad_alloc const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( hpx::detail::bad_alloc const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::logic_error const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::runtime_error const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::out_of_range const&, std::string const&, std::string const&, long); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT void throw_exception( + extern template HPX_CORE_EXPORT void throw_exception( std::invalid_argument const&, std::string const&, std::string const&, long); @@ -96,54 +96,54 @@ namespace hpx::detail { std::string const& file = "", long line = -1, std::string const& auxinfo = ""); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(hpx::exception const&, std::string const&, std::string const&, - long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::system_error const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::exception const&, std::string const&, std::string const&, - long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(hpx::detail::std_exception const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::bad_exception const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(hpx::detail::bad_exception const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::bad_typeid const&, std::string const&, + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + hpx::exception const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::system_error const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::exception const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + hpx::detail::std_exception const&, std::string const&, std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(hpx::detail::bad_typeid const&, std::string const&, + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::bad_exception const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + hpx::detail::bad_exception const&, std::string const&, std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::bad_cast const&, std::string const&, std::string const&, + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::bad_typeid const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + hpx::detail::bad_typeid const&, std::string const&, std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(hpx::detail::bad_cast const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::bad_alloc const&, std::string const&, std::string const&, + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::bad_cast const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + hpx::detail::bad_cast const&, std::string const&, std::string const&, + long, std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::bad_alloc const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + hpx::detail::bad_alloc const&, std::string const&, std::string const&, + long, std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::logic_error const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::runtime_error const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::out_of_range const&, std::string const&, std::string const&, long, + std::string const&); + extern template HPX_CORE_EXPORT std::exception_ptr get_exception( + std::invalid_argument const&, std::string const&, std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(hpx::detail::bad_alloc const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::logic_error const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::runtime_error const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::out_of_range const&, std::string const&, - std::string const&, long, std::string const&); - HPX_CXX_CORE_EXPORT extern template HPX_CORE_EXPORT std::exception_ptr - get_exception(std::invalid_argument const&, std::string const&, - std::string const&, long, std::string const&); HPX_CXX_CORE_EXPORT [[nodiscard]] HPX_CORE_EXPORT std::exception_ptr get_exception(hpx::error errcode, std::string const& msg, throwmode mode, diff --git a/libs/core/execution/include/hpx/execution/algorithms/as_sender.hpp b/libs/core/execution/include/hpx/execution/algorithms/as_sender.hpp index dc4422082090..c4d56ebb0bba 100644 --- a/libs/core/execution/include/hpx/execution/algorithms/as_sender.hpp +++ b/libs/core/execution/include/hpx/execution/algorithms/as_sender.hpp @@ -152,7 +152,7 @@ namespace hpx::execution::experimental { HPX_CXX_CORE_EXPORT template struct as_sender_sender; - HPX_CXX_CORE_EXPORT template + template struct as_sender_sender> : public as_sender_sender_base> { @@ -187,7 +187,7 @@ namespace hpx::execution::experimental { } }; - HPX_CXX_CORE_EXPORT template + template struct as_sender_sender> : as_sender_sender_base> { diff --git a/libs/core/execution/include/hpx/execution/algorithms/detail/is_negative.hpp b/libs/core/execution/include/hpx/execution/algorithms/detail/is_negative.hpp index 817ea5bba07b..3fadcea750a3 100644 --- a/libs/core/execution/include/hpx/execution/algorithms/detail/is_negative.hpp +++ b/libs/core/execution/include/hpx/execution/algorithms/detail/is_negative.hpp @@ -17,7 +17,7 @@ namespace hpx::parallel::detail { struct is_negative_helper; // signed integral values may be negative - HPX_CXX_CORE_EXPORT template + template struct is_negative_helper>> { HPX_HOST_DEVICE HPX_FORCEINLINE static constexpr bool call( @@ -39,7 +39,7 @@ namespace hpx::parallel::detail { }; // unsigned integral values are never negative - HPX_CXX_CORE_EXPORT template + template struct is_negative_helper>> { HPX_HOST_DEVICE HPX_FORCEINLINE static constexpr bool call( diff --git a/libs/core/execution/include/hpx/execution/algorithms/detail/partial_algorithm.hpp b/libs/core/execution/include/hpx/execution/algorithms/detail/partial_algorithm.hpp index 2701469f9b9a..64241d40af8a 100644 --- a/libs/core/execution/include/hpx/execution/algorithms/detail/partial_algorithm.hpp +++ b/libs/core/execution/include/hpx/execution/algorithms/detail/partial_algorithm.hpp @@ -21,8 +21,7 @@ namespace hpx::execution::experimental::detail { HPX_CXX_CORE_EXPORT template struct partial_algorithm_base; - HPX_CXX_CORE_EXPORT template + template struct partial_algorithm_base, Ts...> { private: diff --git a/libs/core/execution/include/hpx/execution/algorithms/detail/predicates.hpp b/libs/core/execution/include/hpx/execution/algorithms/detail/predicates.hpp index 0847de404ef8..12daa28800ab 100644 --- a/libs/core/execution/include/hpx/execution/algorithms/detail/predicates.hpp +++ b/libs/core/execution/include/hpx/execution/algorithms/detail/predicates.hpp @@ -82,7 +82,7 @@ namespace hpx::parallel::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct calculate_distance>> { @@ -142,7 +142,7 @@ namespace hpx::parallel::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct calculate_next && !std::bidirectional_iterator>> @@ -179,7 +179,7 @@ namespace hpx::parallel::detail { } }; - HPX_CXX_CORE_EXPORT template + template struct calculate_next>> { diff --git a/libs/core/execution/include/hpx/execution/algorithms/detail/single_result.hpp b/libs/core/execution/include/hpx/execution/algorithms/detail/single_result.hpp index afe3bb36cfa7..db7c250199e8 100644 --- a/libs/core/execution/include/hpx/execution/algorithms/detail/single_result.hpp +++ b/libs/core/execution/include/hpx/execution/algorithms/detail/single_result.hpp @@ -36,13 +36,13 @@ namespace hpx::execution::experimental::detail { using type = void; }; - HPX_CXX_CORE_EXPORT template + template struct single_result>> { using type = T; }; - HPX_CXX_CORE_EXPORT template + template struct single_result>> { static_assert(sizeof(T) == 0, @@ -50,7 +50,7 @@ namespace hpx::execution::experimental::detail { "(single variant with two or more types given)"); }; - HPX_CXX_CORE_EXPORT template + template struct single_result> { static_assert(sizeof(T) == 0, @@ -82,19 +82,19 @@ namespace hpx::execution::experimental::detail { "expected a single variant completion_signatures<>::value_types"); }; - HPX_CXX_CORE_EXPORT template + template struct single_variant> { using type = T; }; - HPX_CXX_CORE_EXPORT template + template struct single_variant> { using type = T; }; - HPX_CXX_CORE_EXPORT template + template struct single_variant> { using type = T; @@ -111,13 +111,13 @@ namespace hpx::execution::experimental::detail { "expected a single variant completion_signatures<>::value_types"); }; - HPX_CXX_CORE_EXPORT template