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.
iterator.hpp in vendors/XIOS/current/extern/boost/include/boost/range – NEMO

source: vendors/XIOS/current/extern/boost/include/boost/range/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_ITERATOR_HPP
12#define BOOST_RANGE_ITERATOR_HPP
13
14#if defined(_MSC_VER) && (_MSC_VER >= 1020)
15# pragma once
16#endif
17
18#include <boost/range/config.hpp>
19#include <boost/range/mutable_iterator.hpp>
20#include <boost/range/const_iterator.hpp>
21#include <boost/type_traits/is_const.hpp>
22#include <boost/type_traits/remove_const.hpp>
23#include <boost/mpl/eval_if.hpp>
24
25namespace boost
26{
27
28#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
29
30    namespace range_detail_vc7_1
31    {
32       template< typename C, typename Sig = void(C) >
33       struct range_iterator
34       {
35           typedef BOOST_RANGE_DEDUCED_TYPENAME
36               mpl::eval_if_c< is_const<C>::value,
37                               range_const_iterator< typename remove_const<C>::type >,
38                               range_mutable_iterator<C> >::type type;
39       };
40
41       template< typename C, typename T >
42       struct range_iterator< C, void(T[]) >
43       {
44           typedef T* type;
45       };
46    }
47
48#endif
49
50    template< typename C >
51    struct range_iterator
52    {
53#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
54
55        typedef BOOST_RANGE_DEDUCED_TYPENAME
56               range_detail_vc7_1::range_iterator<C>::type type;
57
58#else
59
60        typedef BOOST_RANGE_DEDUCED_TYPENAME
61            mpl::eval_if_c< is_const<C>::value,
62                            range_const_iterator< typename remove_const<C>::type >,
63                            range_mutable_iterator<C> >::type type;
64
65#endif
66    };
67
68} // namespace boost
69
70//#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
71
72#endif
Note: See TracBrowser for help on using the repository browser.