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