12 #include <hipipe/core/stream/transform.hpp>
14 namespace hipipe::stream {
37 template <
typename... FromColumns,
typename... ToColumns>
38 auto copy(from_t<FromColumns...> from_cols, to_t<ToColumns...> to_cols)
40 static_assert(
sizeof...(FromColumns) ==
sizeof...(ToColumns),
41 "hipipe::stream::copy requires the same number of source and target columns.");
44 ((std::is_constructible_v<
typename FromColumns::example_type,
45 const typename ToColumns::example_type&>) && ...),
46 "hipipe::stream::copy target columns must be constructible "
47 "from the respective source columns.");
50 [](
const typename FromColumns::example_type&... vals) {
51 return utility::maybe_tuple<
typename ToColumns::example_type...>(vals...);