diff --git a/sprout/range/algorithm/non_modifying.hpp b/sprout/range/algorithm/non_modifying.hpp index e5fcd663..a7434e5f 100644 --- a/sprout/range/algorithm/non_modifying.hpp +++ b/sprout/range/algorithm/non_modifying.hpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include diff --git a/sprout/range/algorithm/tristate_lexicographical_compare.hpp b/sprout/range/algorithm/tristate_lexicographical_compare.hpp new file mode 100644 index 00000000..b36dae78 --- /dev/null +++ b/sprout/range/algorithm/tristate_lexicographical_compare.hpp @@ -0,0 +1,31 @@ +#ifndef SPROUT_RANGE_ALGORITHM_TRISTATE_LEXICOGRAPHICAL_COMPARE_HPP +#define SPROUT_RANGE_ALGORITHM_TRISTATE_LEXICOGRAPHICAL_COMPARE_HPP + +#include +#include +#include + +namespace sprout { + namespace range { + // + // tristate_lexicographical_compare + // + template + inline SPROUT_CONSTEXPR int + tristate_lexicographical_compare(Range1 const& range1, Range2 const& range2) { + return sprout::tristate_lexicographical_compare( + sprout::begin(range1), sprout::end(range1), sprout::begin(range2), sprout::end(range2) + ); + } + + template + inline SPROUT_CONSTEXPR int + tristate_lexicographical_compare(Range1 const& range1, Range2 const& range2, Compare comp) { + return sprout::tristate_lexicographical_compare( + sprout::begin(range1), sprout::end(range1), sprout::begin(range2), sprout::end(range2), comp + ); + } + } // namespace range +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_ALGORITHM_TRISTATE_LEXICOGRAPHICAL_COMPARE_HPP