blob: d800e0d006fc00a4360a1d3514fa01596004bc48 [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// no include guards, this file is intended for multiple inclusions
10
11#ifdef __WAVE__
12// this file has been generated from the master.hpp file in the same directory
13# pragma wave option(preserve: 0)
14#endif
15
16
Jeff Thompson3d613fd2013-10-15 15:39:04 -070017#if !NDNBOOST_PP_IS_ITERATING
Jeff Thompsona28eed82013-08-22 16:21:10 -070018
Jeff Thompson3d613fd2013-10-15 15:39:04 -070019# ifndef NDNBOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
20# define NDNBOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
Jeff Thompsona28eed82013-08-22 16:21:10 -070021# include <ndnboost/function_types/config/cc_names.hpp>
22
23# include <ndnboost/preprocessor/cat.hpp>
24# include <ndnboost/preprocessor/seq/size.hpp>
25# include <ndnboost/preprocessor/seq/elem.hpp>
26# include <ndnboost/preprocessor/tuple/elem.hpp>
27# include <ndnboost/preprocessor/iteration/iterate.hpp>
28# include <ndnboost/preprocessor/facilities/expand.hpp>
29# include <ndnboost/preprocessor/arithmetic/inc.hpp>
30# endif
31
32# include <ndnboost/function_types/detail/encoding/def.hpp>
33# include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
34
Jeff Thompson3d613fd2013-10-15 15:39:04 -070035# define NDNBOOST_PP_FILENAME_1 \
Jeff Thompsona28eed82013-08-22 16:21:10 -070036 <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070037# define NDNBOOST_PP_ITERATION_LIMITS \
38 (0,NDNBOOST_PP_SEQ_SIZE(NDNBOOST_FT_CC_NAMES_SEQ)-1)
39# include NDNBOOST_PP_ITERATE()
40# if !defined(NDNBOOST_FT_config_valid) && NDNBOOST_FT_CC_PREPROCESSING
41# define NDNBOOST_FT_cc_id 1
42# define NDNBOOST_FT_cc_name implicit_cc
43# define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
44# define NDNBOOST_FT_cond callable_builtin
45# include NDNBOOST_FT_cc_file
46# undef NDNBOOST_FT_cond
47# undef NDNBOOST_FT_cc_name
48# undef NDNBOOST_FT_cc
49# undef NDNBOOST_FT_cc_id
50# elif !defined(NDNBOOST_FT_config_valid) // and generating preprocessed file
51NDNBOOST_PP_EXPAND(#) ifndef NDNBOOST_FT_config_valid
52NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cc_id 1
53NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cc_name implicit_cc
54NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
55NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cond callable_builtin
Jeff Thompsona28eed82013-08-22 16:21:10 -070056#define _()
Jeff Thompson3d613fd2013-10-15 15:39:04 -070057NDNBOOST_PP_EXPAND(#) include NDNBOOST_FT_cc_file
Jeff Thompsona28eed82013-08-22 16:21:10 -070058#undef _
Jeff Thompson3d613fd2013-10-15 15:39:04 -070059NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cond
60NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_name
61NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc
62NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_id
63NDNBOOST_PP_EXPAND(#) else
64NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_config_valid
65NDNBOOST_PP_EXPAND(#) endif
Jeff Thompsona28eed82013-08-22 16:21:10 -070066
67# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -070068# undef NDNBOOST_FT_config_valid
Jeff Thompsona28eed82013-08-22 16:21:10 -070069# endif
70
71# include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
72# include <ndnboost/function_types/detail/encoding/undef.hpp>
73
Jeff Thompson3d613fd2013-10-15 15:39:04 -070074#elif NDNBOOST_FT_CC_PREPROCESSING
Jeff Thompsona28eed82013-08-22 16:21:10 -070075
Jeff Thompson3d613fd2013-10-15 15:39:04 -070076# define NDNBOOST_FT_cc_id NDNBOOST_PP_INC(NDNBOOST_PP_FRAME_ITERATION(1))
77# define NDNBOOST_FT_cc_inf \
78 NDNBOOST_PP_SEQ_ELEM(NDNBOOST_PP_FRAME_ITERATION(1),NDNBOOST_FT_CC_NAMES_SEQ)
Jeff Thompsona28eed82013-08-22 16:21:10 -070079
Jeff Thompson3d613fd2013-10-15 15:39:04 -070080# define NDNBOOST_FT_cc_pp_name NDNBOOST_PP_TUPLE_ELEM(3,0,NDNBOOST_FT_cc_inf)
81# define NDNBOOST_FT_cc_name NDNBOOST_PP_TUPLE_ELEM(3,1,NDNBOOST_FT_cc_inf)
82# define NDNBOOST_FT_cc NDNBOOST_PP_TUPLE_ELEM(3,2,NDNBOOST_FT_cc_inf)
Jeff Thompsona28eed82013-08-22 16:21:10 -070083
Jeff Thompson3d613fd2013-10-15 15:39:04 -070084# define NDNBOOST_FT_cond NDNBOOST_PP_CAT(NDNBOOST_FT_CC_,NDNBOOST_FT_cc_pp_name)
Jeff Thompsona28eed82013-08-22 16:21:10 -070085
Jeff Thompson3d613fd2013-10-15 15:39:04 -070086# if NDNBOOST_FT_cond
87# define NDNBOOST_FT_config_valid 1
88# include NDNBOOST_FT_cc_file
Jeff Thompsona28eed82013-08-22 16:21:10 -070089# endif
90
Jeff Thompson3d613fd2013-10-15 15:39:04 -070091# undef NDNBOOST_FT_cond
Jeff Thompsona28eed82013-08-22 16:21:10 -070092
Jeff Thompson3d613fd2013-10-15 15:39:04 -070093# undef NDNBOOST_FT_cc_pp_name
94# undef NDNBOOST_FT_cc_name
95# undef NDNBOOST_FT_cc
Jeff Thompsona28eed82013-08-22 16:21:10 -070096
Jeff Thompson3d613fd2013-10-15 15:39:04 -070097# undef NDNBOOST_FT_cc_id
98# undef NDNBOOST_FT_cc_inf
Jeff Thompsona28eed82013-08-22 16:21:10 -070099
100#else // if generating preprocessed file
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700101NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cc_id NDNBOOST_PP_INC(NDNBOOST_PP_ITERATION())
Jeff Thompsona28eed82013-08-22 16:21:10 -0700102
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700103# define NDNBOOST_FT_cc_inf \
104 NDNBOOST_PP_SEQ_ELEM(NDNBOOST_PP_ITERATION(),NDNBOOST_FT_CC_NAMES_SEQ)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700105
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700106# define NDNBOOST_FT_cc_pp_name NDNBOOST_PP_TUPLE_ELEM(3,0,NDNBOOST_FT_cc_inf)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700107
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700108# define NDNBOOST_FT_CC_DEF(name,index) \
109 name NDNBOOST_PP_TUPLE_ELEM(3,index,NDNBOOST_FT_cc_inf)
110NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_CC_DEF(NDNBOOST_FT_cc_name,1)
111NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_CC_DEF(NDNBOOST_FT_cc,2)
112# undef NDNBOOST_FT_CC_DEF
Jeff Thompsona28eed82013-08-22 16:21:10 -0700113
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700114# define NDNBOOST_FT_cc_cond_v NDNBOOST_PP_CAT(NDNBOOST_FT_CC_,NDNBOOST_FT_cc_pp_name)
115NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cond NDNBOOST_FT_cc_cond_v
116# undef NDNBOOST_FT_cc_cond_v
Jeff Thompsona28eed82013-08-22 16:21:10 -0700117
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700118# undef NDNBOOST_FT_cc_pp_name
119# undef NDNBOOST_FT_cc_inf
Jeff Thompsona28eed82013-08-22 16:21:10 -0700120
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700121NDNBOOST_PP_EXPAND(#) if NDNBOOST_FT_cond
122NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_config_valid 1
Jeff Thompsona28eed82013-08-22 16:21:10 -0700123#define _()
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700124NDNBOOST_PP_EXPAND(#) include NDNBOOST_FT_cc_file
Jeff Thompsona28eed82013-08-22 16:21:10 -0700125#undef _
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700126NDNBOOST_PP_EXPAND(#) endif
Jeff Thompsona28eed82013-08-22 16:21:10 -0700127
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700128NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cond
Jeff Thompsona28eed82013-08-22 16:21:10 -0700129
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700130NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_name
131NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc
Jeff Thompsona28eed82013-08-22 16:21:10 -0700132
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700133NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_id
Jeff Thompsona28eed82013-08-22 16:21:10 -0700134
135#endif
136