Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/phoenix/scope/detail/dynamic.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 | |
2 #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES) | |
3 #ifndef BOOST_PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP | |
4 #define BOOST_PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP | |
5 | |
6 #include <boost/phoenix/support/iterate.hpp> | |
7 | |
8 #include <boost/phoenix/scope/detail/preprocessed/dynamic.hpp> | |
9 | |
10 #endif | |
11 #else | |
12 | |
13 #if !BOOST_PHOENIX_IS_ITERATING | |
14 | |
15 #ifndef BOOST_PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP | |
16 #define BOOST_PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP | |
17 | |
18 #include <boost/phoenix/support/iterate.hpp> | |
19 | |
20 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES) | |
21 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/dynamic_" BOOST_PHOENIX_LIMIT_STR ".hpp") | |
22 #endif | |
23 | |
24 /*============================================================================== | |
25 Copyright (c) 2005-2010 Joel de Guzman | |
26 Copyright (c) 2010 Thomas Heller | |
27 | |
28 Distributed under the Boost Software License, Version 1.0. (See accompanying | |
29 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
30 ==============================================================================*/ | |
31 | |
32 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES) | |
33 #pragma wave option(preserve: 1) | |
34 #endif | |
35 | |
36 #define BOOST_PHOENIX_SCOPE_DYNAMIC_MEMBER(_, N, __) \ | |
37 typedef \ | |
38 typename expression::dynamic_member< \ | |
39 mpl::int_<N> \ | |
40 , self_type * \ | |
41 >::type const \ | |
42 BOOST_PP_CAT(member, BOOST_PP_INC(N)); \ | |
43 /**/ | |
44 | |
45 #define BOOST_PHOENIX_ITERATION_PARAMS \ | |
46 (3, (1, BOOST_PHOENIX_DYNAMIC_LIMIT, \ | |
47 <boost/phoenix/scope/detail/dynamic.hpp>)) | |
48 #include BOOST_PHOENIX_ITERATE() | |
49 | |
50 #undef BOOST_PHOENIX_SCOPE_DYNAMIC_MEMBER | |
51 | |
52 #endif | |
53 | |
54 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES) | |
55 #pragma wave option(output: null) | |
56 #endif | |
57 | |
58 #else | |
59 | |
60 template <BOOST_PHOENIX_typename_A> | |
61 struct dynamic<BOOST_PHOENIX_A> : noncopyable | |
62 { | |
63 typedef | |
64 BOOST_PP_CAT(vector, BOOST_PHOENIX_ITERATION)<BOOST_PHOENIX_A> | |
65 tuple_type; | |
66 typedef | |
67 dynamic<BOOST_PHOENIX_A> | |
68 self_type; | |
69 typedef | |
70 dynamic_frame<self_type> | |
71 dynamic_frame_type; | |
72 | |
73 dynamic() | |
74 : frame(0) {} | |
75 | |
76 template <int N> | |
77 static | |
78 typename expression::dynamic_member<mpl::int_<N>, self_type *>::type const | |
79 init(self_type * scope) | |
80 { | |
81 return | |
82 expression:: | |
83 dynamic_member<mpl::int_<N>, self_type *>:: | |
84 make(mpl::int_<N>(), scope); | |
85 } | |
86 | |
87 BOOST_PP_REPEAT( | |
88 BOOST_PHOENIX_ITERATION | |
89 , BOOST_PHOENIX_SCOPE_DYNAMIC_MEMBER | |
90 , _ | |
91 ) | |
92 | |
93 mutable dynamic_frame_type* frame; | |
94 }; | |
95 | |
96 #endif | |
97 | |
98 #endif // BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES |