From a56348497fefaf0b64b0fec36902f8d29b1d2d46 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Thu, 15 Feb 2007 23:28:40 +0000 Subject: [PATCH] adds O(1) empty implementation [SVN r36963] --- .../fusion/sequence/container/list/cons.hpp | 1 + .../container/list/detail/empty_impl.hpp | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 include/boost/fusion/sequence/container/list/detail/empty_impl.hpp diff --git a/include/boost/fusion/sequence/container/list/cons.hpp b/include/boost/fusion/sequence/container/list/cons.hpp index 075bee7d..a44e0e23 100644 --- a/include/boost/fusion/sequence/container/list/cons.hpp +++ b/include/boost/fusion/sequence/container/list/cons.hpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/include/boost/fusion/sequence/container/list/detail/empty_impl.hpp b/include/boost/fusion/sequence/container/list/detail/empty_impl.hpp new file mode 100644 index 00000000..4615fd40 --- /dev/null +++ b/include/boost/fusion/sequence/container/list/detail/empty_impl.hpp @@ -0,0 +1,38 @@ +/*============================================================================= + Copyright (c) 2007 Tobias Schwinger + + Use, modification and distribution is subject to the Boost Software + License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED + +#include + +namespace boost { namespace fusion +{ + struct cons_tag; + + struct nil; + + template + struct cons; + + namespace extension + { + template + struct empty_impl; + + template <> + struct empty_impl + { + template + struct apply + : boost::is_convertible + {}; + }; + } +}} + +#endif