// -*- 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 namespace lyx { /// Returns true if the sequence first,last is sorted, false if not. template bool sorted(For first, For last) { if (first == last) return true; For tmp = first; while (++tmp != last) { if (*tmp < *first++) return false; } return true; } /// Cmp is the same Cmp as you would pass to std::sort. template 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; } } // namespace lyx #endif // LYX_ALGO_H