annotate DEPENDENCIES/generic/include/boost/phoenix/scope/detail/make_locals.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1
Chris@16 2 #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
Chris@16 3 #ifndef BOOST_PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
Chris@16 4 #define BOOST_PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
Chris@16 5
Chris@16 6 #include <boost/phoenix/support/iterate.hpp>
Chris@16 7
Chris@16 8 #include <boost/phoenix/scope/detail/preprocessed/make_locals.hpp>
Chris@16 9
Chris@16 10 #endif
Chris@16 11 #else
Chris@16 12
Chris@16 13 #if !BOOST_PHOENIX_IS_ITERATING
Chris@16 14
Chris@16 15 #ifndef BOOST_PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
Chris@16 16 #define BOOST_PHOENIX_SCOPE_DETAIL_MAKE_LOCALS_HPP
Chris@16 17
Chris@16 18 #include <boost/phoenix/support/iterate.hpp>
Chris@16 19
Chris@16 20 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
Chris@16 21 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/make_locals_" BOOST_PHOENIX_LIMIT_STR ".hpp")
Chris@16 22 #endif
Chris@16 23
Chris@16 24 /*==============================================================================
Chris@16 25 Copyright (c) 2005-2010 Joel de Guzman
Chris@16 26 Copyright (c) 2010 Thomas Heller
Chris@16 27
Chris@16 28 Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 29 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 30 ==============================================================================*/
Chris@16 31
Chris@16 32 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
Chris@16 33 #pragma wave option(preserve: 1)
Chris@16 34 #endif
Chris@16 35
Chris@16 36 #define BOOST_PHOENIX_TYPEDEF_LOCAL_TYPES(Z, N, D) \
Chris@16 37 typedef \
Chris@16 38 typename proto::result_of::value< \
Chris@16 39 typename proto::result_of::child_c< \
Chris@16 40 BOOST_PP_CAT(A, N) \
Chris@16 41 , 0 \
Chris@16 42 >::type \
Chris@16 43 >::type \
Chris@16 44 BOOST_PP_CAT(tag_type, N); \
Chris@16 45 \
Chris@16 46 typedef \
Chris@16 47 typename proto::result_of::child_c< \
Chris@16 48 BOOST_PP_CAT(A, N) \
Chris@16 49 , 1 \
Chris@16 50 >::type \
Chris@16 51 BOOST_PP_CAT(var_type, N); \
Chris@16 52 /**/
Chris@16 53
Chris@16 54 #define BOOST_PHOENIX_TYPEDEF_LOCAL_PAIR_TYPES(Z, N, D) \
Chris@16 55 BOOST_PP_COMMA_IF(N) \
Chris@16 56 fusion::pair<BOOST_PP_CAT(tag_type, N), BOOST_PP_CAT(var_type, N)> \
Chris@16 57 /**/
Chris@16 58
Chris@16 59 #define BOOST_PHOENIX_CHILD_OF(Z, N, D) \
Chris@16 60 BOOST_PP_COMMA_IF(N) proto::child_c<1>(BOOST_PP_CAT(a, N)) \
Chris@16 61 /**/
Chris@16 62
Chris@16 63
Chris@16 64 #define BOOST_PHOENIX_ITERATION_PARAMS \
Chris@16 65 (3, (1, BOOST_PHOENIX_LOCAL_LIMIT, \
Chris@16 66 <boost/phoenix/scope/detail/make_locals.hpp>))
Chris@16 67 #include BOOST_PHOENIX_ITERATE()
Chris@16 68
Chris@16 69 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
Chris@16 70 #pragma wave option(output: null)
Chris@16 71 #endif
Chris@16 72
Chris@16 73 #endif
Chris@16 74
Chris@16 75 #else
Chris@16 76
Chris@16 77 template <BOOST_PHOENIX_typename_A>
Chris@16 78 struct make_locals<BOOST_PHOENIX_A>
Chris@16 79 {
Chris@16 80 BOOST_PP_REPEAT(
Chris@16 81 BOOST_PHOENIX_ITERATION
Chris@16 82 , BOOST_PHOENIX_TYPEDEF_LOCAL_TYPES
Chris@16 83 , _
Chris@16 84 )
Chris@16 85 typedef fusion::map<
Chris@16 86 BOOST_PP_REPEAT(
Chris@16 87 BOOST_PHOENIX_ITERATION
Chris@16 88 , BOOST_PHOENIX_TYPEDEF_LOCAL_PAIR_TYPES
Chris@16 89 , _
Chris@16 90 )
Chris@16 91 > type;
Chris@16 92
Chris@16 93 static type const make(BOOST_PHOENIX_A_a)
Chris@16 94 {
Chris@16 95 return
Chris@16 96 type(
Chris@16 97 BOOST_PP_REPEAT(
Chris@16 98 BOOST_PHOENIX_ITERATION
Chris@16 99 , BOOST_PHOENIX_CHILD_OF
Chris@16 100 , _
Chris@16 101 )
Chris@16 102 );
Chris@16 103 }
Chris@16 104 };
Chris@16 105
Chris@16 106 #endif
Chris@16 107
Chris@16 108 #endif // BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES