2 // (C) Copyright Tobias Schwinger
4 // Use modification and distribution are subject to the boost Software License,
5 // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
7 //------------------------------------------------------------------------------
10 // this file has been generated from the master.hpp file in the same directory
11 # pragma wave option(preserve: 0)
14 #if !defined(BOOST_FT_PREPROCESSING_MODE)
15 # error "this file is only for two-pass preprocessing"
18 #if !defined(BOOST_PP_VALUE)
19 # include <boost/preprocessor/slot/slot.hpp>
20 # include <boost/preprocessor/facilities/empty.hpp>
21 # include <boost/preprocessor/facilities/expand.hpp>
22 # include <boost/function_types/detail/encoding/def.hpp>
24 BOOST_PP_EXPAND(#) define BOOST_FT_mfp 0
25 BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function
27 # define BOOST_PP_VALUE \
28 BOOST_FT_function|BOOST_FT_non_variadic
30 # define BOOST_PP_VALUE \
31 BOOST_FT_function|BOOST_FT_variadic
34 BOOST_PP_EXPAND(#) if !BOOST_FT_NO_CV_FUNC_SUPPORT
35 # define BOOST_PP_VALUE \
36 BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const
38 # define BOOST_PP_VALUE \
39 BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const
41 # define BOOST_PP_VALUE \
42 BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_volatile
44 # define BOOST_PP_VALUE \
45 BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_volatile
47 # define BOOST_PP_VALUE \
48 BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
50 # define BOOST_PP_VALUE \
51 BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
53 BOOST_PP_EXPAND(#) endif
56 BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
57 BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_pointer
59 # define BOOST_PP_VALUE \
60 BOOST_FT_pointer|BOOST_FT_non_variadic
62 # define BOOST_PP_VALUE \
63 BOOST_FT_pointer|BOOST_FT_variadic
66 BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
67 BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_reference
69 # define BOOST_PP_VALUE \
70 BOOST_FT_reference|BOOST_FT_non_variadic
72 # define BOOST_PP_VALUE \
73 BOOST_FT_reference|BOOST_FT_variadic
76 BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
77 BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
79 BOOST_PP_EXPAND(#) define BOOST_FT_mfp 1
80 BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
82 # define BOOST_PP_VALUE \
83 BOOST_FT_member_function_pointer|BOOST_FT_non_variadic
85 # define BOOST_PP_VALUE \
86 BOOST_FT_member_function_pointer|BOOST_FT_variadic
88 # define BOOST_PP_VALUE \
89 BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const
91 # define BOOST_PP_VALUE \
92 BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const
94 # define BOOST_PP_VALUE \
95 BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_volatile
97 # define BOOST_PP_VALUE \
98 BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_volatile
100 # define BOOST_PP_VALUE \
101 BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
103 # define BOOST_PP_VALUE \
104 BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
107 BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
108 BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
110 # include <boost/function_types/detail/encoding/undef.hpp>
113 # include BOOST_PP_ASSIGN_SLOT(1)
115 # define BOOST_PP_VALUE BOOST_PP_SLOT(1) & BOOST_FT_kind_mask
116 # include BOOST_PP_ASSIGN_SLOT(2)
118 BOOST_PP_EXPAND(#) if !!(BOOST_PP_SLOT(2) & (BOOST_FT_variations))
119 BOOST_PP_EXPAND(#) if (BOOST_PP_SLOT(1) & (BOOST_FT_cond)) == (BOOST_FT_cond)
121 # if ( BOOST_PP_SLOT(1) & (BOOST_FT_variadic) )
122 BOOST_PP_EXPAND(#) define BOOST_FT_ell ...
123 BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param
125 BOOST_PP_EXPAND(#) define BOOST_FT_ell
126 BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
129 # if !( BOOST_PP_SLOT(1) & (BOOST_FT_volatile) )
130 # if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
131 BOOST_PP_EXPAND(#) define BOOST_FT_cv
133 BOOST_PP_EXPAND(#) define BOOST_FT_cv const
136 # if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
137 BOOST_PP_EXPAND(#) define BOOST_FT_cv volatile
139 BOOST_PP_EXPAND(#) define BOOST_FT_cv const volatile
142 BOOST_PP_EXPAND(#) define BOOST_FT_flags BOOST_PP_SLOT(1)
143 BOOST_PP_EXPAND(#) include BOOST_FT_variate_file
145 BOOST_PP_EXPAND(#) undef BOOST_FT_cv
146 BOOST_PP_EXPAND(#) undef BOOST_FT_ell
147 BOOST_PP_EXPAND(#) undef BOOST_FT_nullary_param
148 BOOST_PP_EXPAND(#) undef BOOST_FT_flags
149 BOOST_PP_EXPAND(#) endif
150 BOOST_PP_EXPAND(#) endif