24#include <rtl/ustring.hxx>
30std::u16string_view getElement(std::u16string_view version, std::size_t * index)
32 while (*index < version.size() && version[*index] ==
'0') {
43 std::u16string_view version1, std::u16string_view version2)
45 for (
size_t i1 = 0, i2 = 0; i1 != std::u16string_view::npos || i2 != std::u16string_view::npos;) {
46 std::u16string_view e1(i1 != std::u16string_view::npos ? getElement(version1, &i1) : std::u16string_view());
47 std::u16string_view e2(i2 != std::u16string_view::npos ? getElement(version2, &i2) : std::u16string_view());
48 if (e1.size() < e2.size()) {
50 }
else if (e1.size() > e2.size()) {
58 return ::dp_misc::EQUAL;
DESKTOP_DEPLOYMENTMISC_DLLPUBLIC Order compareVersions(std::u16string_view version1, std::u16string_view version2)
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)