diff -r 000000000000 -r 044383f39525 imgtools/imglib/boostlibrary/boost/mpl/replace_if.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imgtools/imglib/boostlibrary/boost/mpl/replace_if.hpp Tue Oct 27 16:36:35 2009 +0000 @@ -0,0 +1,88 @@ + +#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: replace_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ +// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Revision: 49267 $ + +#include +#include +#include +#include +#include + +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::type + , T + , U + > + { +#else + { + typedef typename if_< + typename apply1::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 > + , Inserter + > +{ +}; + +template< + typename Sequence + , typename Predicate + , typename T + , typename Inserter + > +struct reverse_replace_if_impl + : reverse_transform1_impl< + Sequence + , protect< aux::replace_if_op > + , Inserter + > +{ +}; + +} // namespace aux + +BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, replace_if) + +}} + +#endif // BOOST_MPL_REPLACE_IF_HPP_INCLUDED