]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/fusion/include/boost/fusion/support/detail/mpl_iterator_category.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / fusion / include / boost / fusion / support / detail / mpl_iterator_category.hpp
1 /*=============================================================================
2 Copyright (c) 2001-2011 Joel de Guzman
3
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #if !defined(FUSION_MPL_ITERATOR_CATEGORY_07212005_0923)
8 #define FUSION_MPL_ITERATOR_CATEGORY_07212005_0923
9
10 namespace boost { namespace mpl
11 {
12 struct forward_iterator_tag;
13 struct bidirectional_iterator_tag;
14 struct random_access_iterator_tag;
15 }}
16
17 namespace boost { namespace fusion
18 {
19 struct forward_traversal_tag;
20 struct bidirectional_traversal_tag;
21 struct random_access_traversal_tag;
22 }}
23
24 namespace boost { namespace fusion { namespace detail
25 {
26 template <typename Category>
27 struct mpl_iterator_category;
28
29 template <>
30 struct mpl_iterator_category<mpl::forward_iterator_tag>
31 {
32 typedef forward_traversal_tag type;
33 };
34
35 template <>
36 struct mpl_iterator_category<mpl::bidirectional_iterator_tag>
37 {
38 typedef bidirectional_traversal_tag type;
39 };
40
41 template <>
42 struct mpl_iterator_category<mpl::random_access_iterator_tag>
43 {
44 typedef random_access_traversal_tag type;
45 };
46
47 template <>
48 struct mpl_iterator_category<forward_traversal_tag>
49 {
50 typedef forward_traversal_tag type;
51 };
52
53 template <>
54 struct mpl_iterator_category<bidirectional_traversal_tag>
55 {
56 typedef bidirectional_traversal_tag type;
57 };
58
59 template <>
60 struct mpl_iterator_category<random_access_traversal_tag>
61 {
62 typedef random_access_traversal_tag type;
63 };
64 }}}
65
66 #endif