Chris@16
|
1 /*=============================================================================
|
Chris@16
|
2 Copyright (c) 2001-2011 Joel de Guzman
|
Chris@16
|
3 Copyright (c) 2005 Eric Niebler
|
Chris@16
|
4
|
Chris@16
|
5 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
7 ==============================================================================*/
|
Chris@16
|
8 #if !defined(FUSION_MAKE_CONS_07172005_0918)
|
Chris@16
|
9 #define FUSION_MAKE_CONS_07172005_0918
|
Chris@16
|
10
|
Chris@101
|
11 #include <boost/fusion/support/config.hpp>
|
Chris@16
|
12 #include <boost/fusion/support/detail/as_fusion_element.hpp>
|
Chris@16
|
13 #include <boost/fusion/container/list/cons.hpp>
|
Chris@16
|
14
|
Chris@16
|
15 namespace boost { namespace fusion
|
Chris@16
|
16 {
|
Chris@16
|
17 struct nil_;
|
Chris@16
|
18
|
Chris@16
|
19 namespace result_of
|
Chris@16
|
20 {
|
Chris@16
|
21 template <typename Car, typename Cdr = nil_>
|
Chris@16
|
22 struct make_cons
|
Chris@16
|
23 {
|
Chris@16
|
24 typedef cons<typename detail::as_fusion_element<Car>::type, Cdr> type;
|
Chris@16
|
25 };
|
Chris@16
|
26 }
|
Chris@16
|
27
|
Chris@16
|
28 template <typename Car>
|
Chris@101
|
29 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@16
|
30 inline cons<typename detail::as_fusion_element<Car>::type>
|
Chris@16
|
31 make_cons(Car const& car)
|
Chris@16
|
32 {
|
Chris@16
|
33 return cons<typename detail::as_fusion_element<Car>::type>(car);
|
Chris@16
|
34 }
|
Chris@16
|
35
|
Chris@16
|
36 template <typename Car, typename Cdr>
|
Chris@101
|
37 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@16
|
38 inline cons<typename detail::as_fusion_element<Car>::type, Cdr>
|
Chris@16
|
39 make_cons(Car const& car, Cdr const& cdr)
|
Chris@16
|
40 {
|
Chris@16
|
41 return cons<typename detail::as_fusion_element<Car>::type, Cdr>(car, cdr);
|
Chris@16
|
42 }
|
Chris@16
|
43 }}
|
Chris@16
|
44
|
Chris@16
|
45 #endif
|
Chris@16
|
46
|