diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/stdapis/boost/pending/integer_range.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/stdapis/boost/pending/integer_range.hpp Tue Mar 16 16:12:26 2010 +0000 @@ -0,0 +1,59 @@ +// (C) Copyright David Abrahams and Jeremy Siek 2000-2001. +// Distributed under 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) +// +// Revision History: +// 04 Jan 2001 Factored counting_iterator stuff into +// boost/counting_iterator.hpp (David Abrahams) + +#ifndef BOOST_INTEGER_RANGE_HPP_ +#define BOOST_INTEGER_RANGE_HPP_ + +#include +#include +#include + +namespace boost { + +//============================================================================= +// Counting Iterator and Integer Range Class + +template +struct integer_range { + typedef counting_iterator iterator; + + typedef iterator const_iterator; + typedef IntegerType value_type; + typedef std::ptrdiff_t difference_type; + typedef IntegerType reference; + typedef IntegerType const_reference; + typedef const IntegerType* pointer; + typedef const IntegerType* const_pointer; + typedef IntegerType size_type; + + integer_range(IntegerType start, IntegerType finish) + : m_start(start), m_finish(finish) { } + + iterator begin() const { return iterator(m_start); } + iterator end() const { return iterator(m_finish); } + size_type size() const { return m_finish - m_start; } + bool empty() const { return m_finish == m_start; } + void swap(integer_range& x) { + std::swap(m_start, x.m_start); + std::swap(m_finish, x.m_finish); + } +protected: + IntegerType m_start, m_finish; +}; + +template +inline integer_range +make_integer_range(IntegerType first, IntegerType last) +{ + return integer_range(first, last); +} + +} // namespace boost + +#endif // BOOST_INTEGER_RANGE_HPP_