blob: 1b6e7baf1ce4a484ccdf141e7a4e7dd44765d1c0 [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
Jeff Thompson3d613fd2013-10-15 15:39:04 -070011#ifndef NDNBOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
12#define NDNBOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
Jeff Thompsona28eed82013-08-22 16:21:10 -070013# include <ndnboost/preprocessor/facilities/expand.hpp>
14# include <ndnboost/preprocessor/facilities/empty.hpp>
15# include <ndnboost/preprocessor/punctuation/paren.hpp>
16#endif
17
18#include <ndnboost/function_types/detail/encoding/def.hpp>
19#include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
20
Jeff Thompson3d613fd2013-10-15 15:39:04 -070021#if defined(NDNBOOST_FT_PREPROCESSING_MODE)
22# define NDNBOOST_FT_loop <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
Jeff Thompsona28eed82013-08-22 16:21:10 -070023#else
Jeff Thompson3d613fd2013-10-15 15:39:04 -070024# define NDNBOOST_FT_loop \
Jeff Thompsona28eed82013-08-22 16:21:10 -070025 <ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp>
26#endif
27
Jeff Thompson3d613fd2013-10-15 15:39:04 -070028#if defined(NDNBOOST_FT_al_path)
Jeff Thompsona28eed82013-08-22 16:21:10 -070029
Jeff Thompson3d613fd2013-10-15 15:39:04 -070030# define NDNBOOST_FT_cc_file \
Jeff Thompsona28eed82013-08-22 16:21:10 -070031 <ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp>
Jeff Thompson3d613fd2013-10-15 15:39:04 -070032# define NDNBOOST_FT_variate_file \
Jeff Thompsona28eed82013-08-22 16:21:10 -070033 <ndnboost/function_types/detail/pp_arity_loop.hpp>
34
Jeff Thompson3d613fd2013-10-15 15:39:04 -070035# ifndef NDNBOOST_FT_type_function
36# define NDNBOOST_FT_type_function(cc,name) NDNBOOST_FT_SYNTAX( \
37 R NDNBOOST_PP_EMPTY,NDNBOOST_PP_EMPTY,cc,NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_EMPTY)
Jeff Thompsona28eed82013-08-22 16:21:10 -070038# endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -070039# ifndef NDNBOOST_FT_type_function_pointer
40# define NDNBOOST_FT_type_function_pointer(cc,name) NDNBOOST_FT_SYNTAX( \
41 R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,* NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
Jeff Thompsona28eed82013-08-22 16:21:10 -070042# endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -070043# ifndef NDNBOOST_FT_type_function_reference
44# define NDNBOOST_FT_type_function_reference(cc,name) NDNBOOST_FT_SYNTAX( \
45 R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,& NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
Jeff Thompsona28eed82013-08-22 16:21:10 -070046# endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -070047# ifndef NDNBOOST_FT_type_member_function_pointer
48# define NDNBOOST_FT_type_member_function_pointer(cc,name) NDNBOOST_FT_SYNTAX( \
49 R NDNBOOST_PP_EMPTY,NDNBOOST_PP_LPAREN,cc,T0::* NDNBOOST_PP_EMPTY,name,NDNBOOST_PP_RPAREN)
Jeff Thompsona28eed82013-08-22 16:21:10 -070050# endif
51
Jeff Thompson3d613fd2013-10-15 15:39:04 -070052# include NDNBOOST_FT_loop
Jeff Thompsona28eed82013-08-22 16:21:10 -070053
Jeff Thompson3d613fd2013-10-15 15:39:04 -070054# undef NDNBOOST_FT_type_function
55# undef NDNBOOST_FT_type_function_pointer
56# undef NDNBOOST_FT_type_function_reference
57# undef NDNBOOST_FT_type_member_function_pointer
Jeff Thompsona28eed82013-08-22 16:21:10 -070058
Jeff Thompson3d613fd2013-10-15 15:39:04 -070059# undef NDNBOOST_FT_variations
60# undef NDNBOOST_FT_variate_file
61# undef NDNBOOST_FT_cc_file
62# undef NDNBOOST_FT_al_path
Jeff Thompsona28eed82013-08-22 16:21:10 -070063
Jeff Thompson3d613fd2013-10-15 15:39:04 -070064#elif defined(NDNBOOST_FT_cc_file)
Jeff Thompsona28eed82013-08-22 16:21:10 -070065
Jeff Thompson3d613fd2013-10-15 15:39:04 -070066# include NDNBOOST_FT_loop
67# undef NDNBOOST_FT_cc_file
Jeff Thompsona28eed82013-08-22 16:21:10 -070068
69#else
70
71# error "argument missing"
72
73#endif
74
Jeff Thompson3d613fd2013-10-15 15:39:04 -070075#undef NDNBOOST_FT_loop
Jeff Thompsona28eed82013-08-22 16:21:10 -070076
77#include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
78#include <ndnboost/function_types/detail/encoding/undef.hpp>
79
80