X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Flyxalgo.h;h=8bf8bbc54191ffd8c1450eea4918a459c8671625;hb=c6b17b7094c42ff6bf96e3452f69023c724d15b7;hp=a40d2a5cb60d6cb8d2e145978358cc94bc1920f8;hpb=25d9537fbd059f30f8fdabcb47484ec6b7e3ef6c;p=lyx.git diff --git a/src/support/lyxalgo.h b/src/support/lyxalgo.h index a40d2a5cb6..8bf8bbc541 100644 --- a/src/support/lyxalgo.h +++ b/src/support/lyxalgo.h @@ -4,9 +4,9 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. * * A variety of useful templates. */ @@ -18,6 +18,7 @@ #include #include + namespace lyx { @@ -72,30 +73,17 @@ OutputIter copy_if(InputIter first, InputIter last, } -/// A slot in replacement for std::count for systems where it is broken. -template -typename std::iterator_traits::difference_type -count (Iterator first, Iterator last, T const & value) -{ -#ifdef HAVE_STD_COUNT - return std::count(first, last, value); -#else - std::iterator_traits::difference_type n = 0; - while (first != last) - if (*first++ == value) ++n; - return n; -#endif -} - /// Remove all duplicate entries in c. template void eliminate_duplicates(C & c) { + // It is a requirement that the container is sorted for + // std::unique to work properly. std::sort(c.begin(), c.end()); - typename C::iterator p = std::unique(c.begin(), c.end()); - c.erase(p, c.end()); + c.erase(std::unique(c.begin(), c.end()), c.end()); } + } // namespace lyx #endif // LYX_ALGO_H