Skip to content

Commit b2322b6

Browse files
Fix export macros in projection traits and apply formatting
- Removed invalid HPX_CXX_CORE_EXPORT from templates in projected.hpp and projected_range.hpp. - Applied clang-format to modified headers.
1 parent 58b8b8f commit b2322b6

2 files changed

Lines changed: 35 additions & 49 deletions

File tree

libs/core/algorithms/include/hpx/algorithms/traits/projected.hpp

Lines changed: 28 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
namespace hpx::traits {
2121

2222
///////////////////////////////////////////////////////////////////////////
23-
HPX_CXX_CORE_EXPORT template <typename T, typename Enable = void>
23+
template <typename T, typename Enable = void>
2424
struct projected_iterator
2525
{
2626
using type = std::decay_t<T>;
2727
};
2828

2929
// For segmented iterators, we consider the local_raw_iterator instead of
3030
// the given one.
31-
HPX_CXX_CORE_EXPORT template <typename Iterator>
31+
template <typename Iterator>
3232
struct projected_iterator<Iterator,
3333
std::enable_if_t<is_segmented_iterator_v<Iterator>>>
3434
{
@@ -39,14 +39,14 @@ namespace hpx::traits {
3939
local_iterator>::local_raw_iterator;
4040
};
4141

42-
HPX_CXX_CORE_EXPORT template <typename Iterator>
42+
template <typename Iterator>
4343
struct projected_iterator<Iterator,
4444
std::void_t<typename std::decay_t<Iterator>::proxy_type>>
4545
{
4646
using type = typename std::decay_t<Iterator>::proxy_type;
4747
};
4848

49-
HPX_CXX_CORE_EXPORT template <typename Iterator>
49+
template <typename Iterator>
5050
using projected_iterator_t = typename projected_iterator<Iterator>::type;
5151
} // namespace hpx::traits
5252

@@ -55,18 +55,17 @@ namespace hpx::parallel::traits {
5555
///////////////////////////////////////////////////////////////////////////
5656
namespace detail {
5757

58-
HPX_CXX_CORE_EXPORT template <typename F, typename Iter,
59-
typename Enable = void>
58+
template <typename F, typename Iter, typename Enable = void>
6059
struct projected_result_of;
6160

62-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Iter>
61+
template <typename Proj, typename Iter>
6362
struct projected_result_of<Proj, Iter,
6463
std::enable_if_t<hpx::traits::is_iterator_v<Iter>>>
6564
: hpx::util::invoke_result<Proj, hpx::traits::iter_reference_t<Iter>>
6665
{
6766
};
6867

69-
HPX_CXX_CORE_EXPORT template <typename Projected>
68+
template <typename Projected>
7069
struct projected_result_of_indirect
7170
: projected_result_of<typename Projected::projector_type,
7271
typename Projected::iterator_type>
@@ -77,8 +76,7 @@ namespace hpx::parallel::traits {
7776
// This is being instantiated if a vector pack execution policy is used
7877
// with a zip_iterator. In this case the function object is invoked
7978
// with a tuple<datapar<T>...> instead of just a tuple<T...>
80-
HPX_CXX_CORE_EXPORT template <typename Proj, typename ValueType,
81-
typename Enable = void>
79+
template <typename Proj, typename ValueType, typename Enable = void>
8280
struct projected_result_of_vector_pack_
8381
: hpx::util::invoke_result<Proj,
8482
typename hpx::parallel::traits::vector_pack_load<
@@ -88,11 +86,10 @@ namespace hpx::parallel::traits {
8886
{
8987
};
9088

91-
HPX_CXX_CORE_EXPORT template <typename Projected,
92-
typename Enable = void>
89+
template <typename Projected, typename Enable = void>
9390
struct projected_result_of_vector_pack;
9491

95-
HPX_CXX_CORE_EXPORT template <typename Projected>
92+
template <typename Projected>
9693
struct projected_result_of_vector_pack<Projected,
9794
std::void_t<typename Projected::iterator_type>>
9895
: projected_result_of_vector_pack_<typename Projected::projector_type,
@@ -102,8 +99,7 @@ namespace hpx::parallel::traits {
10299
#endif
103100
} // namespace detail
104101

105-
HPX_CXX_CORE_EXPORT template <typename F, typename Iter,
106-
typename Enable = void>
102+
template <typename F, typename Iter, typename Enable = void>
107103
struct projected_result_of
108104
: detail::projected_result_of<std::decay_t<F>, std::decay_t<Iter>>
109105
{
@@ -112,8 +108,7 @@ namespace hpx::parallel::traits {
112108
///////////////////////////////////////////////////////////////////////////
113109
namespace detail {
114110

115-
HPX_CXX_CORE_EXPORT template <typename F, typename Iter,
116-
typename Enable = void>
111+
template <typename F, typename Iter, typename Enable = void>
117112
struct is_projected : std::false_type
118113
{
119114
};
@@ -123,7 +118,7 @@ namespace hpx::parallel::traits {
123118
// void
124119

125120
// clang-format off
126-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Iter>
121+
template <typename Proj, typename Iter>
127122
struct is_projected<Proj, Iter,
128123
std::enable_if_t<
129124
hpx::traits::is_iterator_v<Iter> &&
@@ -136,13 +131,12 @@ namespace hpx::parallel::traits {
136131
};
137132
// clang-format on
138133

139-
HPX_CXX_CORE_EXPORT template <typename Projected,
140-
typename Enable = void>
134+
template <typename Projected, typename Enable = void>
141135
struct is_projected_indirect : std::false_type
142136
{
143137
};
144138

145-
HPX_CXX_CORE_EXPORT template <typename Projected>
139+
template <typename Projected>
146140
struct is_projected_indirect<Projected,
147141
std::void_t<typename Projected::projector_type>>
148142
: detail::is_projected<typename Projected::projector_type,
@@ -151,36 +145,35 @@ namespace hpx::parallel::traits {
151145
};
152146
} // namespace detail
153147

154-
HPX_CXX_CORE_EXPORT template <typename F, typename Iter,
155-
typename Enable = void>
148+
template <typename F, typename Iter, typename Enable = void>
156149
struct is_projected
157150
: detail::is_projected<std::decay_t<F>,
158151
hpx::traits::projected_iterator_t<Iter>>
159152
{
160153
};
161154

162-
HPX_CXX_CORE_EXPORT template <typename F, typename Iter>
155+
template <typename F, typename Iter>
163156
inline constexpr bool is_projected_v = is_projected<F, Iter>::value;
164157

165158
///////////////////////////////////////////////////////////////////////////
166-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Iter>
159+
template <typename Proj, typename Iter>
167160
struct projected
168161
{
169162
using projector_type = std::decay_t<Proj>;
170163
using iterator_type = hpx::traits::projected_iterator_t<Iter>;
171164
};
172165

173-
HPX_CXX_CORE_EXPORT template <typename Projected, typename Enable = void>
166+
template <typename Projected, typename Enable = void>
174167
struct is_projected_indirect : detail::is_projected_indirect<Projected>
175168
{
176169
};
177170

178-
HPX_CXX_CORE_EXPORT template <typename Projected, typename Enable = void>
171+
template <typename Projected, typename Enable = void>
179172
struct is_projected_zip_iterator : std::false_type
180173
{
181174
};
182175

183-
HPX_CXX_CORE_EXPORT template <typename Projected>
176+
template <typename Projected>
184177
struct is_projected_zip_iterator<Projected,
185178
std::void_t<typename Projected::iterator_type>>
186179
: hpx::traits::is_zip_iterator<typename Projected::iterator_type>
@@ -190,19 +183,18 @@ namespace hpx::parallel::traits {
190183
///////////////////////////////////////////////////////////////////////////
191184
namespace detail {
192185

193-
HPX_CXX_CORE_EXPORT template <typename F, typename... Args>
186+
template <typename F, typename... Args>
194187
struct is_indirect_callable_impl : hpx::is_invocable<F, Args...>
195188
{
196189
};
197190

198-
HPX_CXX_CORE_EXPORT template <typename ExPolicy, typename F,
199-
typename ProjectedPack, typename Enable = void>
191+
template <typename ExPolicy, typename F, typename ProjectedPack,
192+
typename Enable = void>
200193
struct is_indirect_callable : std::false_type
201194
{
202195
};
203196

204-
HPX_CXX_CORE_EXPORT template <typename ExPolicy, typename F,
205-
typename... Projected>
197+
template <typename ExPolicy, typename F, typename... Projected>
206198
struct is_indirect_callable<ExPolicy, F, hpx::util::pack<Projected...>,
207199
std::enable_if_t<
208200
hpx::util::all_of_v<is_projected_indirect<Projected>...> &&
@@ -218,8 +210,7 @@ namespace hpx::parallel::traits {
218210
// Vector pack execution policies used with zip-iterators require
219211
// special handling because zip_iterator<>::reference is not a real
220212
// reference type.
221-
HPX_CXX_CORE_EXPORT template <typename ExPolicy, typename F,
222-
typename... Projected>
213+
template <typename ExPolicy, typename F, typename... Projected>
223214
struct is_indirect_callable<ExPolicy, F, hpx::util::pack<Projected...>,
224215
std::enable_if_t<
225216
hpx::util::all_of_v<is_projected_indirect<Projected>...> &&
@@ -232,16 +223,14 @@ namespace hpx::parallel::traits {
232223
#endif
233224
} // namespace detail
234225

235-
HPX_CXX_CORE_EXPORT template <typename ExPolicy, typename F,
236-
typename... Projected>
226+
template <typename ExPolicy, typename F, typename... Projected>
237227
struct is_indirect_callable
238228
: detail::is_indirect_callable<std::decay_t<ExPolicy>, std::decay_t<F>,
239229
hpx::util::pack<std::decay_t<Projected>...>>
240230
{
241231
};
242232

243-
HPX_CXX_CORE_EXPORT template <typename ExPolicy, typename F,
244-
typename... Projected>
233+
template <typename ExPolicy, typename F, typename... Projected>
245234
inline constexpr bool is_indirect_callable_v =
246235
is_indirect_callable<ExPolicy, F, Projected...>::value;
247236
} // namespace hpx::parallel::traits

libs/core/algorithms/include/hpx/algorithms/traits/projected_range.hpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@
1515
namespace hpx::parallel::traits {
1616

1717
///////////////////////////////////////////////////////////////////////////
18-
HPX_CXX_CORE_EXPORT template <typename F, typename Rng,
19-
typename Enable = void>
18+
template <typename F, typename Rng, typename Enable = void>
2019
struct projected_range_result_of
2120
{
2221
};
2322

24-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Rng>
23+
template <typename Proj, typename Rng>
2524
struct projected_range_result_of<Proj, Rng,
2625
std::enable_if_t<std::ranges::range<Rng>>>
2726
: detail::projected_result_of<std::decay_t<Proj>,
@@ -30,31 +29,29 @@ namespace hpx::parallel::traits {
3029
};
3130

3231
///////////////////////////////////////////////////////////////////////////
33-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Rng,
34-
typename Enable = void>
32+
template <typename Proj, typename Rng, typename Enable = void>
3533
struct is_projected_range : std::false_type
3634
{
3735
};
3836

39-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Rng>
37+
template <typename Proj, typename Rng>
4038
struct is_projected_range<Proj, Rng,
4139
std::enable_if_t<std::ranges::range<Rng>>>
4240
: detail::is_projected<std::decay_t<Proj>, std::ranges::iterator_t<Rng>>
4341
{
4442
};
4543

46-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Rng>
44+
template <typename Proj, typename Rng>
4745
inline constexpr bool is_projected_range_v =
4846
is_projected_range<Proj, Rng>::value;
4947

5048
///////////////////////////////////////////////////////////////////////////
51-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Rng,
52-
typename Enable = void>
49+
template <typename Proj, typename Rng, typename Enable = void>
5350
struct projected_range
5451
{
5552
};
5653

57-
HPX_CXX_CORE_EXPORT template <typename Proj, typename Rng>
54+
template <typename Proj, typename Rng>
5855
struct projected_range<Proj, Rng, std::enable_if_t<std::ranges::range<Rng>>>
5956
{
6057
using projector_type = std::decay_t<Proj>;

0 commit comments

Comments
 (0)