/*============================================================================= Copyright (c) 2003 Joel de Guzman Copyright (c) 2004 Peder Holt 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(FUSION_ALGORITHM_REMOVE_HPP) #define FUSION_ALGORITHM_REMOVE_HPP #include #include #include namespace boost { namespace fusion { namespace meta { template struct remove { typedef filter_view > > type; }; } namespace function { struct remove { template struct apply : meta::remove {}; template inline filter_view< Sequence const , mpl::not_ > > operator()(Sequence const& seq, T) const { return filter_view< Sequence const , mpl::not_ > >(seq); } template inline filter_view< Sequence , mpl::not_ > > operator()(Sequence& seq, T) const { return filter_view< Sequence , mpl::not_ > >(seq); } }; } function::remove const remove = function::remove(); }} #endif