]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /*============================================================================== |
2 | Copyright (c) 2016 Kohei Takahashi | |
3 | ||
4 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
5 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | ==============================================================================*/ | |
7 | ||
8 | template <typename... A> | |
9 | BOOST_PHOENIX_SCOPE_ACTOR_GEN_NAME< | |
10 | typename vector_chooser<sizeof...(A)>::template apply< | |
11 | typename proto::detail::uncvref< | |
12 | typename proto::result_of::child_c<A, 1>::type | |
13 | >::type... | |
14 | >::type | |
15 | , detail::map_local_index_to_tuple< | |
16 | typename proto::detail::uncvref< | |
17 | typename proto::result_of::value< | |
18 | typename proto::result_of::child_c<A, 0>::type | |
19 | >::type | |
20 | >::type... | |
21 | > | |
22 | > | |
23 | BOOST_PHOENIX_SCOPE_ACTOR_GEN_FUNCTION(A const&... a) BOOST_PHOENIX_SCOPE_ACTOR_GEN_CONST | |
24 | { | |
25 | typedef | |
26 | typename vector_chooser<sizeof...(A)>::template apply< | |
27 | typename proto::detail::uncvref< | |
28 | typename proto::result_of::child_c<A, 1>::type | |
29 | >::type... | |
30 | >::type | |
31 | locals_type; | |
32 | ||
33 | locals_type locals = {proto::child_c<1>(a)...}; | |
34 | ||
35 | return | |
36 | BOOST_PHOENIX_SCOPE_ACTOR_GEN_NAME< | |
37 | locals_type | |
38 | , detail::map_local_index_to_tuple< | |
39 | typename proto::detail::uncvref< | |
40 | typename proto::result_of::value< | |
41 | typename proto::result_of::child_c<A, 0>::type | |
42 | >::type | |
43 | >::type... | |
44 | > | |
45 | >(locals); | |
46 | } | |
47 |