namespace boost {
namespace algorithm {
template<typename ForwardIterator1, typename ForwardIterator2,
typename BinaryPredicate>
bool is_permutation(ForwardIterator1, ForwardIterator1,
ForwardIterator2, BinaryPredicate);
template<typename ForwardIterator1, typename ForwardIterator2>
bool is_permutation(ForwardIterator1, ForwardIterator1,
ForwardIterator2);
template<typename Range, typename ForwardIterator>
bool is_permutation(const Range &, ForwardIterator);
template<typename Range, typename ForwardIterator,
typename BinaryPredicate>
boost::disable_if_c< boost::is_same< Range, ForwardIterator >::value, bool >::type
is_permutation(const Range &, ForwardIterator, BinaryPredicate);
}
}