13 #ifndef CXXUTILS_COPY_BOUNDED_H
14 #define CXXUTILS_COPY_BOUNDED_H
27 template <
class InputIterator,
class OutputIterator,
28 class InputTag,
class OutputTag>
32 OutputIterator bego, OutputIterator endo,
36 while (begi != endi && bego != endo) {
48 template <
class InputIterator,
class OutputIterator>
52 OutputIterator bego, OutputIterator endo,
53 const std::random_access_iterator_tag&,
54 const std::random_access_iterator_tag&)
56 size_t n =
std::min (endi-begi, endo-bego);
75 template <std::input_iterator InputIterator,
76 std::output_iterator<typename std::iterator_traits<InputIterator>::value_type> OutputIterator>
80 OutputIterator bego, OutputIterator endo)
83 (begi, endi, bego, endo,
84 typename std::iterator_traits<InputIterator>::iterator_category(),
85 typename std::iterator_traits<OutputIterator>::iterator_category());
96 template <
class InputRange,
class OutputRange>
118 template <
class InputRange,
class OutputRange>
134 #endif // not CXXUTILS_COPY_BOUNDED_H