12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // 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 <utility>
- namespace boost {
- namespace detail {
- namespace multi_array {
- template <typename Extent, typename SizeType>
- class extent_range : private std::pair<Extent,Extent> {
- typedef std::pair<Extent,Extent> 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
|