]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/mpl/map/aux_/map0.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
eac5de6389714ff190c893c459b064679b44c47c
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / map / aux_ / map0.hpp
1 \r
2 #ifndef BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED\r
3 #define BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED\r
4 \r
5 // Copyright Aleksey Gurtovoy 2003-2004\r
6 // Copyright David Abrahams 2003-2004\r
7 //\r
8 // Distributed under the Boost Software License, Version 1.0. \r
9 // (See accompanying file LICENSE_1_0.txt or copy at \r
10 // http://www.boost.org/LICENSE_1_0.txt)\r
11 //\r
12 // See http://www.boost.org/libs/mpl for documentation.\r
13 \r
14 // $Id: map0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $\r
15 // $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $\r
16 // $Revision: 49267 $\r
17 \r
18 #include <boost/mpl/long.hpp>\r
19 #include <boost/mpl/void.hpp>\r
20 #include <boost/mpl/map/aux_/tag.hpp>\r
21 #include <boost/mpl/aux_/na.hpp>\r
22 #include <boost/mpl/aux_/yes_no.hpp>\r
23 #include <boost/mpl/aux_/overload_names.hpp>\r
24 #include <boost/mpl/aux_/config/operators.hpp>\r
25 \r
26 #include <boost/preprocessor/cat.hpp>\r
27 \r
28 namespace boost { namespace mpl {\r
29 \r
30 #if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING)\r
31 \r
32 #   define BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \\r
33     friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \\r
34 /**/\r
35 \r
36 #   define BOOST_MPL_AUX_MAP_OVERLOAD(R, f, X, T) \\r
37     BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \\r
38 /**/\r
39 \r
40 #else\r
41 \r
42 #   define BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \\r
43     static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \\r
44 /**/\r
45 \r
46 #   define BOOST_MPL_AUX_MAP_OVERLOAD(R, f, X, T) \\r
47     BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T); \\r
48     using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \\r
49 /**/\r
50 \r
51 #endif\r
52 \r
53 \r
54 template< typename Dummy = na > struct map0\r
55 {\r
56     typedef map0            type;\r
57     typedef aux::map_tag    tag;\r
58     typedef void_           key_;\r
59     typedef long_<1>        order;\r
60     typedef long_<0>        size;\r
61 \r
62 #if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)\r
63     BOOST_MPL_AUX_MAP0_OVERLOAD( aux::type_wrapper<void_>, VALUE_BY_KEY, map0<>, void const volatile* );\r
64     BOOST_MPL_AUX_MAP0_OVERLOAD( aux::type_wrapper<void_>, ITEM_BY_ORDER, map0<>, long_<1>* );\r
65     BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, map0<>, void const volatile* );\r
66 #else\r
67     BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, map0<>, void const volatile* );\r
68     BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, IS_MASKED, map0<>, void const volatile* );\r
69 #endif\r
70 };\r
71 \r
72 }}\r
73 \r
74 #endif // BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED\r