// Description: Partition a list
#ifndef PASTELSYS_LIST_PARTITION_H
#define PASTELSYS_LIST_PARTITION_H
#include "pastel/sys/list.h"
namespace Pastel
{
//! Partition a list.
template <
typename Settings,
template <typename> class Customization,
typename Predicate>
std::pair<std::pair<typename List<Settings, Customization>::iterator, integer>,
std::pair<typename List<Settings, Customization>::iterator, integer> >
partition(
List<Settings, Customization>& list,
const typename List<Settings, Customization>::ConstRange& range,
const Predicate& predicate);
//! Partition a list with a fuzzy predicate.
template <
typename Settings,
template <typename> class Customization,
typename Predicate>
std::pair<std::pair<typename List<Settings, Customization>::iterator, integer>,
std::pair<typename List<Settings, Customization>::iterator, integer> >
fuzzyPartition(
List<Settings, Customization>& list,
const typename List<Settings, Customization>::ConstRange& range,
const Predicate& predicate);
}
#include "pastel/sys/list/list_partition.hpp"
#endif