mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-29 23:07:48 +02:00
Fix potential compatibility with C++20 / C++23 mode
This fixes several issues with compatibility with C++20. C++23 was also tested, but apparently it does not have any additional breaking changes compared to C++20 (or we don't have those). VCMI still uses C++17 as before - goal is only to make potential transition easier. There were 2 cases that are deprecated in C++20 that we use: - Floating point operations on enums are deprecated - `this` can no longer be captured when using default capture by value `[=]` Both of those should now be replaced with code that works fine in both C+ +17 and in C++20 mode
This commit is contained in:
@@ -211,8 +211,12 @@ void TextOperations::trimRightUnicode(std::string & text, const size_t amount)
|
||||
|
||||
size_t TextOperations::getUnicodeCharactersCount(const std::string & text)
|
||||
{
|
||||
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> conv;
|
||||
return conv.from_bytes(text).size();
|
||||
size_t charactersCount = 0;
|
||||
|
||||
for (size_t i=0; i<text.size(); i += getUnicodeCharacterSize(text[i]))
|
||||
charactersCount++;
|
||||
|
||||
return charactersCount;
|
||||
}
|
||||
|
||||
std::string TextOperations::escapeString(std::string input)
|
||||
|
||||
Reference in New Issue
Block a user