1 /*============================================================================= 2 Copyright (c) 2007 Tobias Schwinger 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 #if !defined(BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED) 8 #define BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED 9 10 #include <boost/fusion/support/config.hpp> 11 #include <boost/type_traits/is_convertible.hpp> 12 #include <boost/fusion/container/list/nil.hpp> 13 14 namespace boost { namespace fusion 15 { 16 struct cons_tag; 17 18 struct nil_; 19 20 template <typename Car, typename Cdr> 21 struct cons; 22 23 namespace extension 24 { 25 template <typename Tag> 26 struct empty_impl; 27 28 template <> 29 struct empty_impl<cons_tag> 30 { 31 template <typename Sequence> 32 struct apply 33 : boost::is_convertible<Sequence, nil_> 34 {}; 35 }; 36 } 37 }} 38 39 #endif 40