blob: 1ce6ab73f43d103b3845104ea5351b35e447926d [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#ifndef BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
12#define BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
13# 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
21#if defined(BOOST_FT_PREPROCESSING_MODE)
22# define BOOST_FT_loop <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
23#else
24# define BOOST_FT_loop \
25 <ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp>
26#endif
27
28#if defined(BOOST_FT_al_path)
29
30# define BOOST_FT_cc_file \
31 <ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp>
32# define BOOST_FT_variate_file \
33 <ndnboost/function_types/detail/pp_arity_loop.hpp>
34
35# ifndef BOOST_FT_type_function
36# define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
37 R BOOST_PP_EMPTY,BOOST_PP_EMPTY,cc,BOOST_PP_EMPTY,name,BOOST_PP_EMPTY)
38# endif
39# ifndef BOOST_FT_type_function_pointer
40# define BOOST_FT_type_function_pointer(cc,name) BOOST_FT_SYNTAX( \
41 R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
42# endif
43# ifndef BOOST_FT_type_function_reference
44# define BOOST_FT_type_function_reference(cc,name) BOOST_FT_SYNTAX( \
45 R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,& BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
46# endif
47# ifndef BOOST_FT_type_member_function_pointer
48# define BOOST_FT_type_member_function_pointer(cc,name) BOOST_FT_SYNTAX( \
49 R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,T0::* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
50# endif
51
52# include BOOST_FT_loop
53
54# undef BOOST_FT_type_function
55# undef BOOST_FT_type_function_pointer
56# undef BOOST_FT_type_function_reference
57# undef BOOST_FT_type_member_function_pointer
58
59# undef BOOST_FT_variations
60# undef BOOST_FT_variate_file
61# undef BOOST_FT_cc_file
62# undef BOOST_FT_al_path
63
64#elif defined(BOOST_FT_cc_file)
65
66# include BOOST_FT_loop
67# undef BOOST_FT_cc_file
68
69#else
70
71# error "argument missing"
72
73#endif
74
75#undef BOOST_FT_loop
76
77#include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
78#include <ndnboost/function_types/detail/encoding/undef.hpp>
79
80