@@ -95,9 +95,9 @@ namespace cppsort
95
95
96
96
template <typename Self, typename ... Args>
97
97
constexpr auto operator ()(this Self&& self, choice<Ind>, Args&&... args)
98
- -> decltype(std::forward <Self> (self).base_class:: get()(std::forward<Args>(args)...))
98
+ -> decltype(static_cast <detail:: copy_cvref_t <Self, base_class>> (self).get()(std::forward<Args>(args)...))
99
99
{
100
- return std::forward <Self> (self).base_class :: get ()(std::forward<Args>(args)...);
100
+ return static_cast <detail:: copy_cvref_t <Self, base_class>> (self).get ()(std::forward<Args>(args)...);
101
101
}
102
102
103
103
template <typename ... Args>
@@ -214,13 +214,13 @@ namespace cppsort
214
214
template <typename Self, mstd::forward_range Range, typename ... Args>
215
215
requires are_parameters_valid<mstd::iterator_t <Range>, Args...>
216
216
constexpr auto operator ()(this Self&& self, Range&& range, Args&&... args)
217
- -> decltype(std::forward <Self> (self).base_class::operator( )(
217
+ -> decltype(static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
218
218
detail::choice_for_it<mstd::iterator_t <Range>, sizeof ...(Sorters)>{},
219
219
std::forward<Range>(range),
220
220
std::forward<Args>(args)...
221
221
))
222
222
{
223
- return std::forward <Self> (self). base_class ::operator ( )(
223
+ return static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
224
224
detail::choice_for_it<mstd::iterator_t <Range>, sizeof ...(Sorters)>{},
225
225
std::forward<Range>(range),
226
226
std::forward<Args>(args)...
@@ -235,13 +235,13 @@ namespace cppsort
235
235
>
236
236
requires are_parameters_valid<Iterator, Args...>
237
237
constexpr auto operator ()(this Self&& self, Iterator first, Sentinel last, Args&&... args)
238
- -> decltype(std::forward <Self> (self).base_class::operator( )(
238
+ -> decltype(static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
239
239
detail::choice_for_it<Iterator, sizeof ...(Sorters)>{},
240
240
std::move (first), std::move(last),
241
241
std::forward<Args>(args)...
242
242
))
243
243
{
244
- return std::forward <Self> (self). base_class ::operator ( )(
244
+ return static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
245
245
detail::choice_for_it<Iterator, sizeof ...(Sorters)>{},
246
246
std::move (first), std::move (last),
247
247
std::forward<Args>(args)...
0 commit comments