| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
#ifndef BOOST_MPL_REPLACE_IF_HPP_INCLUDED#define BOOST_MPL_REPLACE_IF_HPP_INCLUDED// Copyright Aleksey Gurtovoy 2000-2004// Copyright John R. Bandela 2000-2002// Copyright David Abrahams 2003-2004//// Distributed under 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)//// See http://www.boost.org/libs/mpl for documentation.// $Id$// $Date$// $Revision$#include <boost/mpl/transform.hpp>#include <boost/mpl/apply.hpp>#include <boost/mpl/if.hpp>#include <boost/mpl/aux_/inserter_algorithm.hpp>#include <boost/mpl/aux_/config/forwarding.hpp>namespace boost { namespace mpl {namespace aux {template< typename Predicate, typename T >struct replace_if_op{    template< typename U > struct apply#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)        : if_<              typename apply1<Predicate,U>::type            , T            , U            >    {#else    {        typedef typename if_<              typename apply1<Predicate,U>::type            , T            , U            >::type type;#endif    };};template<      typename Sequence    , typename Predicate    , typename T    , typename Inserter    >struct replace_if_impl    : transform1_impl<          Sequence        , protect< aux::replace_if_op<Predicate,T> >        , Inserter        >{};template<      typename Sequence    , typename Predicate    , typename T    , typename Inserter    >struct reverse_replace_if_impl    : reverse_transform1_impl<          Sequence        , protect< aux::replace_if_op<Predicate,T> >        , Inserter        >{};} // namespace auxBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, replace_if)}}#endif // BOOST_MPL_REPLACE_IF_HPP_INCLUDED
 |