// -*- C++ -*-
+/**
+ * \file lyxalgo.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS.
+ *
+ * A variety of useful templates.
+ */
#ifndef LYX_ALGO_H
#define LYX_ALGO_H
-#include <algorithm>
+namespace lyx {
-// 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>
if (first == last) return true;
For tmp = first;
while (++tmp != last) {
- if (less(*tmp, *first++)) return false;
+ if (*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)
return true;
}
-// } // end of namespace lyx
-#endif
+
+} // namespace lyx
+
+#endif // LYX_ALGO_H