]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/phoenix/scope/detail/local_gen.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / phoenix / scope / detail / local_gen.hpp
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