epoc32/include/stdapis/boost/detail/algorithm.hpp
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 2fe1408b6811
child 4 837f303aceeb
--- /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 <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