lyx_mirror/src/support/lyxalgo.h

41 lines
804 B
C
Raw Normal View History

// -*- C++ -*-
#ifndef LYX_ALGO_H
#define LYX_ALGO_H
#include <algorithm>
// using std::less;
// Both these functions should ideally be placed into namespace lyx.
// Also the using std::less should not be used.
//namespace lyx {
/// Returns true if the sequence first,last is sorted, false if not.
template <class For>
bool sorted(For first, For last)
{
if (first == last) return true;
For tmp = first;
while (++tmp != last) {
if (less(*tmp, *first++)) return false;
}
return true;
}
/// Cmp is the same Cmp as you would pass to std::sort.
template <class For, class Cmp>
bool sorted(For first, For last, Cmp cmp)
{
if (first == last) return true;
For tmp = first;
while (++tmp != last) {
if (cmp(*tmp, *first++)) return false;
}
return true;
}
// } // end of namespace lyx
#endif