@@ -213,13 +213,13 @@ namespace cppsort
213
213
214
214
template <typename Self, mstd::forward_range Range, typename ... Args>
215
215
constexpr auto operator ()(this Self&& self, Range&& range, Args&&... args)
216
- -> decltype(std::forward <Self> (self).base_class::operator( )(
216
+ -> decltype(static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
217
217
detail::choice_for_it<mstd::iterator_t <Range>, sizeof ...(Sorters)>{},
218
218
std::forward<Range>(range),
219
219
std::forward<Args>(args)...
220
220
))
221
221
{
222
- return std::forward <Self> (self). base_class ::operator ( )(
222
+ return static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
223
223
detail::choice_for_it<mstd::iterator_t <Range>, sizeof ...(Sorters)>{},
224
224
std::forward<Range>(range),
225
225
std::forward<Args>(args)...
@@ -233,13 +233,13 @@ namespace cppsort
233
233
typename ... Args
234
234
>
235
235
constexpr auto operator ()(this Self&& self, Iterator first, Sentinel last, Args&&... args)
236
- -> decltype(std::forward <Self> (self).base_class::operator( )(
236
+ -> decltype(static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
237
237
detail::choice_for_it<Iterator, sizeof ...(Sorters)>{},
238
238
std::move (first), std::move(last),
239
239
std::forward<Args>(args)...
240
240
))
241
241
{
242
- return std::forward <Self> (self). base_class ::operator ( )(
242
+ return static_cast <detail:: copy_cvref_t <Self, base_class>> (self)(
243
243
detail::choice_for_it<Iterator, sizeof ...(Sorters)>{},
244
244
std::move (first), std::move (last),
245
245
std::forward<Args>(args)...
0 commit comments