From e2a47bdbe5dfb569fe8dbb4f1fb2f1ce77f69c61 Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Thu, 10 Jul 2003 12:52:06 +0000 Subject: [PATCH] Moved to boost/iterator [SVN r19025] --- include/boost/permutation_iterator.hpp | 74 -------------------------- 1 file changed, 74 deletions(-) delete mode 100644 include/boost/permutation_iterator.hpp diff --git a/include/boost/permutation_iterator.hpp b/include/boost/permutation_iterator.hpp deleted file mode 100644 index 8fdddb2..0000000 --- a/include/boost/permutation_iterator.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// (C) Copyright Toon Knapen 2001. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. -// - -// See http://www.boost.org/libs/utility/permutation_iterator.htm for documentation. - -#ifndef boost_permutation_iterator_hpp -#define boost_permutation_iterator_hpp - -#include - -namespace boost { - - template < typename IndexIterator > - struct permutation_iterator_policies : public default_iterator_policies - { - permutation_iterator_policies() {} - - permutation_iterator_policies(IndexIterator order_it) - : order_it_( order_it ) - {} - - template - typename IteratorAdaptor::reference dereference(const IteratorAdaptor& x) const - { return *(x.base() + *order_it_); } - - template - void increment(IteratorAdaptor&) - { ++order_it_; } - - template - void decrement(IteratorAdaptor&) - { --order_it_; } - - template - void advance(IteratorAdaptor& x, DifferenceType n) - { std::advance( order_it_, n ); } - - template - typename IteratorAdaptor1::difference_type - distance(const IteratorAdaptor1& x, const IteratorAdaptor2& y) const - { return std::distance( x.policies().order_it_, y.policies().order_it_ ); } - - template - bool equal(const IteratorAdaptor1& x, const IteratorAdaptor2& y) const - { return x.policies().order_it_ == y.policies().order_it_; } - - IndexIterator order_it_; - }; - - template < typename ElementIterator, typename IndexIterator > - struct permutation_iterator_generator - { - typedef boost::iterator_adaptor - < ElementIterator, - permutation_iterator_policies< IndexIterator > - > type; - }; - - template < class IndexIterator, class ElementIterator > - inline typename permutation_iterator_generator< ElementIterator, IndexIterator >::type - make_permutation_iterator(ElementIterator base, IndexIterator order) - { - typedef typename permutation_iterator_generator< ElementIterator, IndexIterator >::type result_t; - return result_t( base, order ); - } - -} // namespace boost - -#endif // boost_permutation_iterator_hpp -