Chris@102
|
1 /*=============================================================================
|
Chris@102
|
2 Copyright (c) 2001-2011 Joel de Guzman
|
Chris@102
|
3 Copyright (c) 2005, 2014 Eric Niebler
|
Chris@102
|
4
|
Chris@102
|
5 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@102
|
6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@102
|
7 ==============================================================================*/
|
Chris@102
|
8 #if !defined(FUSION_NIL_04232014_0843)
|
Chris@102
|
9 #define FUSION_NIL_04232014_0843
|
Chris@102
|
10
|
Chris@102
|
11 #include <boost/fusion/support/config.hpp>
|
Chris@102
|
12 #include <boost/fusion/container/list/cons_fwd.hpp>
|
Chris@102
|
13 #include <boost/fusion/support/sequence_base.hpp>
|
Chris@102
|
14 #include <boost/mpl/int.hpp>
|
Chris@102
|
15 #include <boost/mpl/bool.hpp>
|
Chris@102
|
16
|
Chris@102
|
17 namespace boost { namespace fusion
|
Chris@102
|
18 {
|
Chris@102
|
19 struct void_;
|
Chris@102
|
20 struct cons_tag;
|
Chris@102
|
21 struct forward_traversal_tag;
|
Chris@102
|
22 struct fusion_sequence_tag;
|
Chris@102
|
23
|
Chris@102
|
24 struct nil_ : sequence_base<nil_>
|
Chris@102
|
25 {
|
Chris@102
|
26 typedef mpl::int_<0> size;
|
Chris@102
|
27 typedef cons_tag fusion_tag;
|
Chris@102
|
28 typedef fusion_sequence_tag tag; // this gets picked up by MPL
|
Chris@102
|
29 typedef mpl::false_ is_view;
|
Chris@102
|
30 typedef forward_traversal_tag category;
|
Chris@102
|
31 typedef void_ car_type;
|
Chris@102
|
32 typedef void_ cdr_type;
|
Chris@102
|
33
|
Chris@102
|
34 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@102
|
35 nil_() BOOST_NOEXCEPT {}
|
Chris@102
|
36
|
Chris@102
|
37 template <typename Iterator>
|
Chris@102
|
38 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@102
|
39 nil_(Iterator const& /*iter*/, mpl::true_ /*this_is_an_iterator*/) BOOST_NOEXCEPT
|
Chris@102
|
40 {}
|
Chris@102
|
41
|
Chris@102
|
42 template <typename Iterator>
|
Chris@102
|
43 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
Chris@102
|
44 void assign_from_iter(Iterator const& /*iter*/) BOOST_NOEXCEPT
|
Chris@102
|
45 {
|
Chris@102
|
46 }
|
Chris@102
|
47 };
|
Chris@102
|
48 }}
|
Chris@102
|
49
|
Chris@102
|
50 #endif
|
Chris@102
|
51
|