comparison DEPENDENCIES/generic/include/boost/fusion/sequence/convert.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
4 Distributed under the Boost Software License, Version 1.0. (See accompanying 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) 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/ 6 ==============================================================================*/
7 #if !defined(FUSION_CONVERT_10022005_1442) 7 #if !defined(FUSION_CONVERT_10022005_1442)
8 #define FUSION_CONVERT_10022005_1442 8 #define FUSION_CONVERT_10022005_1442
9
10 #include <boost/fusion/support/config.hpp>
9 11
10 namespace boost { namespace fusion 12 namespace boost { namespace fusion
11 { 13 {
12 namespace extension 14 namespace extension
13 { 15 {
18 namespace result_of 20 namespace result_of
19 { 21 {
20 template <typename Tag, typename Sequence> 22 template <typename Tag, typename Sequence>
21 struct convert 23 struct convert
22 { 24 {
23 typedef typename extension::convert_impl<Tag> gen; 25 typedef typename
26 extension::convert_impl<Tag>::template apply<Sequence>
27 gen;
24 28
25 typedef typename 29 typedef typename gen::type type;
26 gen::template apply<Sequence>::type
27 type;
28 }; 30 };
29 } 31 }
30 32
31 template <typename Tag, typename Sequence> 33 template <typename Tag, typename Sequence>
34 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
32 inline typename result_of::convert<Tag, Sequence>::type 35 inline typename result_of::convert<Tag, Sequence>::type
33 convert(Sequence& seq) 36 convert(Sequence& seq)
34 { 37 {
35 typedef typename result_of::convert<Tag, Sequence>::gen gen; 38 typedef typename result_of::convert<Tag, Sequence>::gen gen;
36 return gen::call(seq); 39 return gen::call(seq);
37 } 40 }
38 41
39 template <typename Tag, typename Sequence> 42 template <typename Tag, typename Sequence>
43 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
40 inline typename result_of::convert<Tag, Sequence const>::type 44 inline typename result_of::convert<Tag, Sequence const>::type
41 convert(Sequence const& seq) 45 convert(Sequence const& seq)
42 { 46 {
43 typedef typename result_of::convert<Tag, Sequence const>::gen gen; 47 typedef typename result_of::convert<Tag, Sequence const>::gen gen;
44 return gen::call(seq); 48 return gen::call(seq);