diff --git a/src/blackmisc/containerbase.h b/src/blackmisc/containerbase.h index 0b768a9b3..cc4e665a1 100644 --- a/src/blackmisc/containerbase.h +++ b/src/blackmisc/containerbase.h @@ -61,9 +61,15 @@ namespace BlackMisc //! \copydoc BlackMisc::CValueObject::compare friend int compare(const C &a, const C &b) { + for (auto i = a.cbegin(), j = b.cbegin(); i != a.cend() && j != b.cend(); ++i, ++j) + { + if (*i < *j) { return -1; } + if (*j < *i) { return 1; } + } if (a.size() < b.size()) { return -1; } - if (a.size() > b.size()) { return 1; } - return std::lexicographical_compare(a.cbegin(), a.cend(), b.cbegin(), b.cend()); + if (b.size() < a.size()) { return 1; } + return 0; + } /*!