epoc32/include/stdapis/boost/multi_array/extent_range.hpp
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright 2002 The Trustees of Indiana University.
williamr@2
     2
williamr@2
     3
// Use, modification and distribution is subject to the Boost Software 
williamr@2
     4
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
williamr@2
     5
// http://www.boost.org/LICENSE_1_0.txt)
williamr@2
     6
williamr@2
     7
//  Boost.MultiArray Library
williamr@2
     8
//  Authors: Ronald Garcia
williamr@2
     9
//           Jeremy Siek
williamr@2
    10
//           Andrew Lumsdaine
williamr@2
    11
//  See http://www.boost.org/libs/multi_array for documentation.
williamr@2
    12
williamr@2
    13
#ifndef BOOST_EXTENT_RANGE_RG071801_HPP
williamr@2
    14
#define BOOST_EXTENT_RANGE_RG071801_HPP
williamr@2
    15
williamr@2
    16
#include <utility>
williamr@2
    17
williamr@2
    18
namespace boost {
williamr@2
    19
namespace detail {
williamr@2
    20
namespace multi_array {
williamr@2
    21
williamr@2
    22
template <typename Extent, typename SizeType>
williamr@2
    23
class extent_range : private std::pair<Extent,Extent> {
williamr@2
    24
  typedef std::pair<Extent,Extent> super_type;
williamr@2
    25
public:
williamr@2
    26
  typedef Extent index;
williamr@2
    27
  typedef SizeType size_type;
williamr@2
    28
williamr@2
    29
  extent_range(index start, index finish) :
williamr@2
    30
    super_type(start,finish) { }
williamr@2
    31
williamr@2
    32
  extent_range(index finish) :
williamr@2
    33
    super_type(0,finish) { }
williamr@2
    34
williamr@2
    35
  extent_range() : super_type(0,0) { }
williamr@2
    36
williamr@2
    37
  index start() const { return super_type::first; }
williamr@2
    38
williamr@2
    39
  index finish() const { return super_type::second; }
williamr@2
    40
williamr@2
    41
  size_type size() const { return super_type::second - super_type::first; }
williamr@2
    42
};
williamr@2
    43
williamr@2
    44
} // namespace multi_array
williamr@2
    45
} // namespace detail 
williamr@2
    46
} // namespace boost
williamr@2
    47
williamr@2
    48
williamr@2
    49
#endif // BOOST_EXTENT_RANGE_RG071801_HPP