New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
const_iterator.hpp in vendors/XIOS/current/extern/boost/include/boost/range – NEMO

source: vendors/XIOS/current/extern/boost/include/boost/range/const_iterator.hpp @ 3428

Last change on this file since 3428 was 3428, checked in by rblod, 12 years ago

importing initial XIOS vendor drop

File size: 1.8 KB
Line 
1// Boost.Range library
2//
3//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
4//  distribution is subject to the Boost Software License, Version
5//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
6//  http://www.boost.org/LICENSE_1_0.txt)
7//
8// For more information, see http://www.boost.org/libs/range/
9//
10
11#ifndef BOOST_RANGE_CONST_ITERATOR_HPP
12#define BOOST_RANGE_CONST_ITERATOR_HPP
13
14#if defined(_MSC_VER) && (_MSC_VER >= 1200)
15# pragma once
16#endif
17
18#include <boost/range/config.hpp>
19
20#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
21#include <boost/range/detail/const_iterator.hpp>
22#else
23
24#include <boost/range/detail/extract_optional_type.hpp>
25#include <boost/type_traits/remove_const.hpp>
26#include <cstddef>
27#include <utility>
28
29namespace boost
30{
31    //////////////////////////////////////////////////////////////////////////
32    // default
33    //////////////////////////////////////////////////////////////////////////
34   
35    namespace range_detail {
36        BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( const_iterator )
37    }
38
39    template< typename C >
40    struct range_const_iterator : range_detail::extract_const_iterator<C>
41    {};
42   
43    //////////////////////////////////////////////////////////////////////////
44    // pair
45    //////////////////////////////////////////////////////////////////////////
46
47    template< typename Iterator >
48    struct range_const_iterator< std::pair<Iterator,Iterator> >
49    {
50        typedef Iterator type;
51    };
52   
53    //////////////////////////////////////////////////////////////////////////
54    // array
55    //////////////////////////////////////////////////////////////////////////
56
57    template< typename T, std::size_t sz >
58    struct range_const_iterator< T[sz] >
59    {
60        typedef const T* type;
61    };
62
63} // namespace boost
64
65#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
66
67#endif
Note: See TracBrowser for help on using the repository browser.