blob: 880a518d13f596a2d575392a732f64248abb05cc [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
2// (C) Copyright Tobias Schwinger
3//
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).
6
7//------------------------------------------------------------------------------
8
9#ifdef __WAVE__
10// this file has been generated from the master.hpp file in the same directory
11# pragma wave option(preserve: 0)
12#endif
13
Jeff Thompson3d613fd2013-10-15 15:39:04 -070014#if !defined(NDNBOOST_FT_PREPROCESSING_MODE)
Jeff Thompsona28eed82013-08-22 16:21:10 -070015# error "this file is only for two-pass preprocessing"
16#endif
17
Jeff Thompson3d613fd2013-10-15 15:39:04 -070018#if !defined(NDNBOOST_PP_VALUE)
Jeff Thompsona28eed82013-08-22 16:21:10 -070019# include <ndnboost/preprocessor/slot/slot.hpp>
20# include <ndnboost/preprocessor/facilities/empty.hpp>
21# include <ndnboost/preprocessor/facilities/expand.hpp>
22# include <ndnboost/function_types/detail/encoding/def.hpp>
23
Jeff Thompson3d613fd2013-10-15 15:39:04 -070024NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 0
25NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function
Jeff Thompsona28eed82013-08-22 16:21:10 -070026
Jeff Thompson3d613fd2013-10-15 15:39:04 -070027# define NDNBOOST_PP_VALUE \
28 NDNBOOST_FT_function|NDNBOOST_FT_non_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070029# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070030# define NDNBOOST_PP_VALUE \
31 NDNBOOST_FT_function|NDNBOOST_FT_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070032# include __FILE__
33
Jeff Thompson3d613fd2013-10-15 15:39:04 -070034NDNBOOST_PP_EXPAND(#) if !NDNBOOST_FT_NO_CV_FUNC_SUPPORT
35# define NDNBOOST_PP_VALUE \
36 NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const
Jeff Thompsona28eed82013-08-22 16:21:10 -070037# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070038# define NDNBOOST_PP_VALUE \
39 NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const
Jeff Thompsona28eed82013-08-22 16:21:10 -070040# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070041# define NDNBOOST_PP_VALUE \
42 NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -070043# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070044# define NDNBOOST_PP_VALUE \
45 NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -070046# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070047# define NDNBOOST_PP_VALUE \
48 NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -070049# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070050# define NDNBOOST_PP_VALUE \
51 NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -070052# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070053NDNBOOST_PP_EXPAND(#) endif
Jeff Thompsona28eed82013-08-22 16:21:10 -070054
55
Jeff Thompson3d613fd2013-10-15 15:39:04 -070056NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_syntax
57NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_pointer
Jeff Thompsona28eed82013-08-22 16:21:10 -070058
Jeff Thompson3d613fd2013-10-15 15:39:04 -070059# define NDNBOOST_PP_VALUE \
60 NDNBOOST_FT_pointer|NDNBOOST_FT_non_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070061# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070062# define NDNBOOST_PP_VALUE \
63 NDNBOOST_FT_pointer|NDNBOOST_FT_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070064# include __FILE__
65
Jeff Thompson3d613fd2013-10-15 15:39:04 -070066NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_syntax
67NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_reference
Jeff Thompsona28eed82013-08-22 16:21:10 -070068
Jeff Thompson3d613fd2013-10-15 15:39:04 -070069# define NDNBOOST_PP_VALUE \
70 NDNBOOST_FT_reference|NDNBOOST_FT_non_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070071# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070072# define NDNBOOST_PP_VALUE \
73 NDNBOOST_FT_reference|NDNBOOST_FT_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070074# include __FILE__
75
Jeff Thompson3d613fd2013-10-15 15:39:04 -070076NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_syntax
77NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_mfp
Jeff Thompsona28eed82013-08-22 16:21:10 -070078
Jeff Thompson3d613fd2013-10-15 15:39:04 -070079NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 1
80NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_member_function_pointer
Jeff Thompsona28eed82013-08-22 16:21:10 -070081
Jeff Thompson3d613fd2013-10-15 15:39:04 -070082# define NDNBOOST_PP_VALUE \
83 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070084# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070085# define NDNBOOST_PP_VALUE \
86 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic
Jeff Thompsona28eed82013-08-22 16:21:10 -070087# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070088# define NDNBOOST_PP_VALUE \
89 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const
Jeff Thompsona28eed82013-08-22 16:21:10 -070090# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070091# define NDNBOOST_PP_VALUE \
92 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const
Jeff Thompsona28eed82013-08-22 16:21:10 -070093# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070094# define NDNBOOST_PP_VALUE \
95 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -070096# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070097# define NDNBOOST_PP_VALUE \
98 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -070099# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700100# define NDNBOOST_PP_VALUE \
101 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -0700102# include __FILE__
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700103# define NDNBOOST_PP_VALUE \
104 NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -0700105# include __FILE__
106
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700107NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_syntax
108NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_mfp
Jeff Thompsona28eed82013-08-22 16:21:10 -0700109
110# include <ndnboost/function_types/detail/encoding/undef.hpp>
111#else
112
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700113# include NDNBOOST_PP_ASSIGN_SLOT(1)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700114
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700115# define NDNBOOST_PP_VALUE NDNBOOST_PP_SLOT(1) & NDNBOOST_FT_kind_mask
116# include NDNBOOST_PP_ASSIGN_SLOT(2)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700117
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700118NDNBOOST_PP_EXPAND(#) if !!(NDNBOOST_PP_SLOT(2) & (NDNBOOST_FT_variations))
119NDNBOOST_PP_EXPAND(#) if (NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700120
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700121# if ( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_variadic) )
122NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_ell ...
123NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_nullary_param
Jeff Thompsona28eed82013-08-22 16:21:10 -0700124# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700125NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_ell
126NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
Jeff Thompsona28eed82013-08-22 16:21:10 -0700127# endif
128
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700129# if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_volatile) )
130# if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
131NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cv
Jeff Thompsona28eed82013-08-22 16:21:10 -0700132# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700133NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cv const
Jeff Thompsona28eed82013-08-22 16:21:10 -0700134# endif
135# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700136# if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
137NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cv volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -0700138# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700139NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cv const volatile
Jeff Thompsona28eed82013-08-22 16:21:10 -0700140# endif
141# endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700142NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_flags NDNBOOST_PP_SLOT(1)
143NDNBOOST_PP_EXPAND(#) include NDNBOOST_FT_variate_file
Jeff Thompsona28eed82013-08-22 16:21:10 -0700144
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700145NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cv
146NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_ell
147NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_nullary_param
148NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_flags
149NDNBOOST_PP_EXPAND(#) endif
150NDNBOOST_PP_EXPAND(#) endif
Jeff Thompsona28eed82013-08-22 16:21:10 -0700151#endif
152