104 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#ifndef BOOST_ALGORITHM_RG071801_HPP
 | 
						|
#define BOOST_ALGORITHM_RG071801_HPP
 | 
						|
 | 
						|
//
 | 
						|
//
 | 
						|
// Copyright (c) 1994
 | 
						|
// Hewlett-Packard Company
 | 
						|
//
 | 
						|
// Permission to use, copy, modify, distribute and sell this software
 | 
						|
// and its documentation for any purpose is hereby granted without fee,
 | 
						|
// provided that the above copyright notice appear in all copies and
 | 
						|
// that both that copyright notice and this permission notice appear
 | 
						|
// in supporting documentation.  Hewlett-Packard Company makes no
 | 
						|
// representations about the suitability of this software for any
 | 
						|
// purpose.  It is provided "as is" without express or implied warranty.
 | 
						|
//
 | 
						|
//
 | 
						|
// Copyright (c) 1996-1998
 | 
						|
// Silicon Graphics Computer Systems, Inc.
 | 
						|
//
 | 
						|
// Permission to use, copy, modify, distribute and sell this software
 | 
						|
// and its documentation for any purpose is hereby granted without fee,
 | 
						|
// provided that the above copyright notice appear in all copies and
 | 
						|
// that both that copyright notice and this permission notice appear
 | 
						|
// in supporting documentation.  Silicon Graphics makes no
 | 
						|
// representations about the suitability of this software for any
 | 
						|
// purpose.  It is provided "as is" without express or implied warranty.
 | 
						|
//
 | 
						|
 | 
						|
// Copyright 2002 The Trustees of Indiana University.
 | 
						|
 | 
						|
// Use, modification and distribution is subject to the Boost Software 
 | 
						|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 | 
						|
// http://www.boost.org/LICENSE_1_0.txt)
 | 
						|
 | 
						|
//  Boost.MultiArray Library
 | 
						|
//  Authors: Ronald Garcia
 | 
						|
//           Jeremy Siek
 | 
						|
//           Andrew Lumsdaine
 | 
						|
//  See http://www.boost.org/libs/multi_array for documentation.
 | 
						|
 | 
						|
 | 
						|
#include "boost/iterator.hpp"
 | 
						|
 | 
						|
namespace boost {
 | 
						|
namespace detail {
 | 
						|
namespace multi_array {
 | 
						|
//--------------------------------------------------
 | 
						|
// copy_n (not part of the C++ standard)
 | 
						|
#if 1
 | 
						|
 | 
						|
template <class InputIter, class Size, class OutputIter>
 | 
						|
OutputIter copy_n(InputIter first, Size count,
 | 
						|
                  OutputIter result) {
 | 
						|
  for ( ; count > 0; --count) {
 | 
						|
    *result = *first;
 | 
						|
    ++first;
 | 
						|
    ++result;
 | 
						|
  }
 | 
						|
  return result;
 | 
						|
}
 | 
						|
#else // !1
 | 
						|
 | 
						|
template <class InputIter, class Size, class OutputIter>
 | 
						|
OutputIter copy_n__(InputIter first, Size count,
 | 
						|
                                       OutputIter result,
 | 
						|
                                       std::input_iterator_tag) {
 | 
						|
  for ( ; count > 0; --count) {
 | 
						|
    *result = *first;
 | 
						|
    ++first;
 | 
						|
    ++result;
 | 
						|
  }
 | 
						|
  return result;
 | 
						|
}
 | 
						|
 | 
						|
template <class RAIter, class Size, class OutputIter>
 | 
						|
inline OutputIter
 | 
						|
copy_n__(RAIter first, Size count,
 | 
						|
         OutputIter result,
 | 
						|
         std::random_access_iterator_tag) {
 | 
						|
  RAIter last = first + count;
 | 
						|
  return std::copy(first, last, result);
 | 
						|
}
 | 
						|
 | 
						|
template <class InputIter, class Size, class OutputIter>
 | 
						|
inline OutputIter
 | 
						|
copy_n__(InputIter first, Size count, OutputIter result) {
 | 
						|
  typedef typename std::iterator_traits<InputIter>::iterator_category cat;
 | 
						|
  return copy_n__(first, count, result, cat());
 | 
						|
}
 | 
						|
 | 
						|
template <class InputIter, class Size, class OutputIter>
 | 
						|
inline OutputIter
 | 
						|
copy_n(InputIter first, Size count, OutputIter result) {
 | 
						|
  return copy_n__(first, count, result);
 | 
						|
}
 | 
						|
 | 
						|
#endif // 1
 | 
						|
} // namespace multi_array
 | 
						|
} // namespace detail
 | 
						|
} // namespace boost
 | 
						|
 | 
						|
#endif // BOOST_ALGORITHM_RG071801_HPP
 |