diff -r 000000000000 -r bde4ae8d615e os/ossrv/ossrv_pub/boost_apis/boost/mpl/stable_partition.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/mpl/stable_partition.hpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,75 @@ + +#ifndef BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED +#define BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED + +// Copyright Eric Friedman 2002-2003 +// Copyright Aleksey Gurtovoy 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. + +// $Source: /cvsroot/boost/boost/boost/mpl/stable_partition.hpp,v $ +// $Date: 2004/11/28 01:58:27 $ +// $Revision: 1.4 $ + +#include <boost/mpl/fold.hpp> +#include <boost/mpl/reverse_fold.hpp> +#include <boost/mpl/protect.hpp> +#include <boost/mpl/aux_/partition_op.hpp> +#include <boost/mpl/aux_/inserter_algorithm.hpp> +#include <boost/mpl/aux_/na.hpp> + +namespace boost { namespace mpl { + +namespace aux { + +template < + typename Sequence + , typename Pred + , typename In + , typename In2 + , typename In1 = typename if_na<In,In2>::type + > +struct stable_partition_impl + : fold< + Sequence + , pair< typename In1::state, typename In2::state > + , protect< partition_op< + Pred + , typename In1::operation + , typename In2::operation + > > + > +{ +}; + +template < + typename Sequence + , typename Pred + , typename In + , typename In2 + , typename In1 = typename if_na<In,In2>::type + > +struct reverse_stable_partition_impl + : reverse_fold< + Sequence + , pair< typename In1::state, typename In2::state > + , protect< partition_op< + Pred + , typename In1::operation + , typename In2::operation + > > + > +{ +}; + +} // namespace aux + +BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, stable_partition) + +}} + +#endif // BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED