13 #include <hipipe/core/stream/stream_t.hpp>
15 #include <range/v3/view/transform.hpp>
18 namespace hipipe::stream {
20 namespace rgv = ranges::views;
24 template<
typename... Columns>
27 friend rgv::view_access;
29 static auto bind(drop_fn<Columns...> fun)
31 return ranges::make_pipeable(std::bind(fun, std::placeholders::_1));
35 CPP_template(
class Rng)(requires ranges::input_range<Rng>)
39 [](batch_t batch) -> batch_t {
40 ((batch.erase<Columns>()), ...);
46 CPP_template(
class Rng)(requires !ranges::input_range<Rng>)
47 void operator()(Rng&&)
const
49 CONCEPT_ASSERT_MSG(ranges::input_range<Rng>(),
50 "stream::drop only works on ranges satisfying the input_range concept.");
68 template <
typename... Columns>
69 rgv::view<detail::drop_fn<Columns...>>
drop{};