...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
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 ForwardIterator1, typename ForwardIterator2> bool is_permutation(ForwardIterator1, ForwardIterator1, ForwardIterator2, ForwardIterator2); template<typename ForwardIterator1, typename ForwardIterator2, typename BinaryPredicate> bool is_permutation(ForwardIterator1, ForwardIterator1, ForwardIterator2, ForwardIterator2, BinaryPredicate); 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); } }