Closed stripe2933 closed 6 months ago
range-v3 has one, it just looks a little different. You can see the description in the paper.
Basically you write:
namespace ranges::views {
struct join_view_fn {
template <viewable_range R>
requires /* ... */
constexpr auto operator(R&& r)
-> join_view<all_t<R>>;
};
// for user consumption
inline constexpr view_closure<join_view_fn> join{};
}
instead of:
namespace ranges::views {
struct join_view_fn : range_adaptor_closure<join_view_fn> {
template <viewable_range R>
requires /* ... */
constexpr auto operator(R&& r)
-> join_view<all_t<R>>;
};
// for user consumption
inline constexpr join_view_fn join{};
}
Thank you for your answer.
Hello, is there any equivalent for C++23's
range_adaptor_closure
? It would be good to make user defined class inherits its CTRP parent so that reduce boilerplate foroperator|
.