namespace boost {
namespace algorithm {
template<typename BidirectionalIterator, typename Pred>
std::pair< BidirectionalIterator, BidirectionalIterator >
gather(BidirectionalIterator first, BidirectionalIterator last,
BidirectionalIterator pivot, Pred pred);
template<typename BidirectionalRange, typename Pred>
std::pair< typename boost::range_iterator< const BidirectionalRange >::type, typename boost::range_iterator< const BidirectionalRange >::type >
gather(const BidirectionalRange & range,
typename boost::range_iterator< const BidirectionalRange >::type pivot,
Pred pred);
}
}