13 template <
typename InputRange,
typename OutputIterator>
14 auto copy(InputRange&& range, OutputIterator iter)
15 -> decltype(
std::copy(std::begin(std::forward<InputRange>(range)),
16 std::end(std::forward<InputRange>(range)),
19 return std::copy(std::begin(std::forward<InputRange>(range)),
20 std::end(std::forward<InputRange>(range)),
24 template <
typename T,
typename OutputRange>
25 auto fill(OutputRange&& range,
const T& init)
26 -> std::void_t<decltype(std::fill(std::begin(std::forward<OutputRange>(range)),
27 std::end(std::forward<OutputRange>(range)),
30 std::fill(std::begin(std::forward<OutputRange>(range)),
31 std::end(std::forward<OutputRange>(range)),
35 template <
typename InputRange,
typename OutputIterator,
typename UnaryOperation>
36 auto transform(InputRange&& range, OutputIterator iter, UnaryOperation unary_op)
37 -> decltype(
std::transform(std::begin(range), std::end(range), iter, unary_op))
39 return std::transform(std::begin(range), std::end(range), iter, unary_op);
auto fill(OutputRange &&range, const T &init) -> std::void_t< decltype(std::fill(std::begin(std::forward< OutputRange >(range)), std::end(std::forward< OutputRange >(range)), init))>
Definition: algorithm.hpp:25
auto transform(InputRange &&range, OutputIterator iter, UnaryOperation unary_op) -> decltype(std::transform(std::begin(range), std::end(range), iter, unary_op))
Definition: algorithm.hpp:36
auto copy(InputRange &&range, OutputIterator iter) -> decltype(std::copy(std::begin(std::forward< InputRange >(range)), std::end(std::forward< InputRange >(range)), iter))
Definition: algorithm.hpp:14