]> git.lyx.org Git - lyx.git/blob - boost/boost/multi_array/extent_range.hpp
2002-05-24 Lars Gullik Bj�nnes <larsbj@birdstep.com>
[lyx.git] / boost / boost / multi_array / extent_range.hpp
1 #ifndef BOOST_EXTENT_RANGE_RG071801_HPP
2 #define BOOST_EXTENT_RANGE_RG071801_HPP
3
4 #include <utility>
5
6 namespace boost {
7 namespace detail {
8 namespace multi_array {
9
10 template <typename Extent, typename SizeType>
11 class extent_range : private std::pair<Extent,Extent> {
12   typedef std::pair<Extent,Extent> super_type;
13 public:
14   typedef Extent index;
15   typedef SizeType size_type;
16
17   extent_range(index start, index finish) :
18     super_type(start,finish) { }
19
20   extent_range(index finish) :
21     super_type(0,finish) { }
22
23   extent_range() : super_type(0,0) { }
24
25   index start() const { return super_type::first; }
26
27   index finish() const { return super_type::second; }
28
29   size_type size() const { return super_type::second - super_type::first; }
30 };
31
32 } // namespace multi_array
33 } // namespace detail 
34 } // namespace boost
35
36
37 #endif // BOOST_EXTENT_RANGE_RG071801_HPP