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