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

Private GIT Repository
161991615e54201ac24a1cd340958d76e8abda7b
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / bind_fwd.hpp
1 \r
2 #if !defined(BOOST_PP_IS_ITERATING)\r
3 \r
4 ///// header body\r
5 \r
6 #ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED\r
7 #define BOOST_MPL_BIND_FWD_HPP_INCLUDED\r
8 \r
9 // Copyright Aleksey Gurtovoy 2000-2004\r
10 //\r
11 // Distributed under the Boost Software License, Version 1.0. \r
12 // (See accompanying file LICENSE_1_0.txt or copy at \r
13 // http://www.boost.org/LICENSE_1_0.txt)\r
14 //\r
15 // See http://www.boost.org/libs/mpl for documentation.\r
16 \r
17 // $Id: bind_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $\r
18 // $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $\r
19 // $Revision: 49267 $\r
20 \r
21 #if !defined(BOOST_MPL_PREPROCESSING_MODE)\r
22 #   include <boost/mpl/aux_/na.hpp>\r
23 #endif\r
24 \r
25 #include <boost/mpl/aux_/config/bind.hpp>\r
26 #include <boost/mpl/aux_/config/use_preprocessed.hpp>\r
27 \r
28 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \\r
29     && !defined(BOOST_MPL_PREPROCESSING_MODE)\r
30 \r
31 #   define BOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp\r
32 #   include <boost/mpl/aux_/include_preprocessed.hpp>\r
33 \r
34 #else\r
35 \r
36 #   include <boost/mpl/limits/arity.hpp>\r
37 #   include <boost/mpl/aux_/preprocessor/params.hpp>\r
38 #   include <boost/mpl/aux_/preprocessor/default_params.hpp>\r
39 #   include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>\r
40 \r
41 #   include <boost/preprocessor/comma_if.hpp>\r
42 #   include <boost/preprocessor/iterate.hpp>\r
43 #   include <boost/preprocessor/cat.hpp>\r
44 \r
45 namespace boost { namespace mpl {\r
46 \r
47 // local macros, #undef-ined at the end of the header\r
48 \r
49 #   if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)\r
50 #       define AUX778076_DMC_PARAM() , int dummy_ = 0\r
51 #   else\r
52 #       define AUX778076_DMC_PARAM()\r
53 #   endif\r
54 \r
55 #   define AUX778076_BIND_DEFAULT_PARAMS(param, value) \\r
56     BOOST_MPL_PP_DEFAULT_PARAMS( \\r
57           BOOST_MPL_LIMIT_METAFUNCTION_ARITY \\r
58         , param \\r
59         , value \\r
60         ) \\r
61     AUX778076_DMC_PARAM() \\r
62     /**/\r
63 \r
64 #   define AUX778076_BIND_N_PARAMS(n, param) \\r
65     BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \\r
66     AUX778076_DMC_PARAM() \\r
67     /**/\r
68 \r
69 #if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)\r
70 template<\r
71       typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na)\r
72     >\r
73 struct bind;\r
74 #endif\r
75 \r
76 #define BOOST_PP_ITERATION_PARAMS_1 \\r
77     (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/bind_fwd.hpp>))\r
78 #include BOOST_PP_ITERATE()\r
79 \r
80 #   undef AUX778076_BIND_N_PARAMS\r
81 #   undef AUX778076_BIND_DEFAULT_PARAMS\r
82 #   undef AUX778076_DMC_PARAM\r
83 }}\r
84 \r
85 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS\r
86 #endif // BOOST_MPL_BIND_FWD_HPP_INCLUDED\r
87 \r
88 ///// iteration\r
89 \r
90 #else\r
91 #define i_ BOOST_PP_FRAME_ITERATION(1)\r
92 \r
93 template<\r
94       typename F AUX778076_BIND_N_PARAMS(i_, typename T)\r
95     >\r
96 struct BOOST_PP_CAT(bind,i_);\r
97 \r
98 #undef i_\r
99 #endif // BOOST_PP_IS_ITERATING\r