diff options
Diffstat (limited to 'ext/boost/mpl/stable_partition.hpp')
-rw-r--r-- | ext/boost/mpl/stable_partition.hpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/ext/boost/mpl/stable_partition.hpp b/ext/boost/mpl/stable_partition.hpp new file mode 100644 index 0000000000..6dc4eeadb4 --- /dev/null +++ b/ext/boost/mpl/stable_partition.hpp @@ -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. + +// $Id: stable_partition.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ +// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ +// $Revision: 49267 $ + +#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 |