diff -r 2fe1408b6811 -r e1b950c65cb4 epoc32/include/stdapis/boost/detail/algorithm.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/stdapis/boost/detail/algorithm.hpp Wed Mar 31 12:27:01 2010 +0100 @@ -0,0 +1,103 @@ +#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 +OutputIter copy_n(InputIter first, Size count, + OutputIter result) { + for ( ; count > 0; --count) { + *result = *first; + ++first; + ++result; + } + return result; +} +#else // !1 + +template +OutputIter copy_n__(InputIter first, Size count, + OutputIter result, + std::input_iterator_tag) { + for ( ; count > 0; --count) { + *result = *first; + ++first; + ++result; + } + return result; +} + +template +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 +inline OutputIter +copy_n__(InputIter first, Size count, OutputIter result) { + typedef typename std::iterator_traits::iterator_category cat; + return copy_n__(first, count, result, cat()); +} + +template +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