// 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. #ifndef BOOST_MULTI_ARRAY_EXTENT_RANGE_HPP #define BOOST_MULTI_ARRAY_EXTENT_RANGE_HPP #include namespace boost { namespace detail { namespace multi_array { template class extent_range : private std::pair { typedef std::pair super_type; public: typedef Extent index; typedef SizeType size_type; extent_range(index start, index finish) : super_type(start,finish) { } extent_range(index finish) : super_type(0,finish) { } extent_range() : super_type(0,0) { } index start() const { return super_type::first; } index finish() const { return super_type::second; } size_type size() const { return super_type::second - super_type::first; } }; } // namespace multi_array } // namespace detail } // namespace boost #endif