From 8df9e849c4e091effe7f0a96b0718543cdcb866f Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Wed, 18 Nov 2020 12:01:40 +0000 Subject: [PATCH 1/2] sfm: fix build in non-C++11 mode --- modules/sfm/src/libmv_light/libmv/base/vector.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/sfm/src/libmv_light/libmv/base/vector.h b/modules/sfm/src/libmv_light/libmv/base/vector.h index 9740cfaf6fc..b3cae3d37ae 100644 --- a/modules/sfm/src/libmv_light/libmv/base/vector.h +++ b/modules/sfm/src/libmv_light/libmv/base/vector.h @@ -125,7 +125,11 @@ class vector { memcpy(data, data_, sizeof(*data)*size_); #else for (int i = 0; i < size_; ++i) +#ifdef CV_CXX11 new (&data[i]) T(std::move(data_[i])); +#else + new (&data[i]) T(data_[i]); +#endif for (int i = 0; i < size_; ++i) data_[i].~T(); #endif From 2bf643483eab3df7d0964907416cbf3446287145 Mon Sep 17 00:00:00 2001 From: Zhiju Cen Date: Fri, 20 Nov 2020 16:22:59 +0800 Subject: [PATCH 2/2] VS compatibility with unicode strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The UTF-8 string u8"…" causes following errors when building under VS2019: C2001 newline in constant C2143 syntax error: missing ';' before '}' C2146 syntax error: missing ';' before identifier 'str' --- modules/cvv/src/stfl/stringutils.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/cvv/src/stfl/stringutils.cpp b/modules/cvv/src/stfl/stringutils.cpp index 3ce0f145747..71d07d9bb67 100644 --- a/modules/cvv/src/stfl/stringutils.cpp +++ b/modules/cvv/src/stfl/stringutils.cpp @@ -248,15 +248,16 @@ void unescapeCommas(QString &str) QString shortenString(QString &str, int maxLength, bool cutEnd, bool fill) { + const auto horizontalEllipsis = u8"\xE2\x80\xA6"; // u8"…" if (str.size() > maxLength) { if (cutEnd) { - str = str.mid(0, maxLength - 1) + u8"…"; + str = str.mid(0, maxLength - 1) + horizontalEllipsis; } else { - str = u8"…" + + str = horizontalEllipsis + str.mid(str.size() + 1 - maxLength, str.size()); } }