Fix C++20 compatibility in testcases

This commit is contained in:
Olly Betts 2022-07-25 16:40:16 +12:00
commit 8038cd7ac3
5 changed files with 17 additions and 6 deletions

View file

@ -1,7 +1,7 @@
/* This module tests whether SWIG correctly parses:
- ordinary strings (char_t)
- ordinary strings (char)
- L wide strings (wchar_t)
- u8 unicode8 strings (char_t)
- u8 unicode8 strings (char / char8_t since C++20)
- u unicode16 strings (char16_t)
- U unicode32 strings (char32_t)
@ -49,7 +49,8 @@ struct URStruct {
// New string literals
wstring aa = L"Wide string";
const char *bb = u8"UTF-8 string";
// u8"" is const char8_t[N] in C++20; const char[N] from C++11 until then.
const char *bb = reinterpret_cast<const char*>(u8"UTF-8 string");
const char16_t *cc = u"UTF-16 string";
const char32_t *dd = U"UTF-32 string";
// New char literals
@ -62,7 +63,7 @@ char32_t char32_t_char = U'b';
const char *xx = ")I'm an \"ascii\" \\ string.";
const char *ee = R"XXX()I'm an "ascii" \ string.)XXX";
wstring ff = LR"XXX(I'm a "raw wide" \ string.)XXX";
const char *gg = u8R"XXX(I'm a "raw UTF-8" \ string.)XXX";
const char *gg = reinterpret_cast<const char*>(u8R"XXX(I'm a "raw UTF-8" \ string.)XXX");
const char16_t *hh = uR"XXX(I'm a "raw UTF-16" \ string.)XXX";
const char32_t *ii = UR"XXX(I'm a "raw UTF-32" \ string.)XXX";
%}