Fix for u8 char C++20 incompatibility

C++20 apparently doesn't allow std::string construction from u8 literals any more.
The pre-20 behavior is restored by explicitly casting the new `char_8_t` back to `char`.
This commit is contained in:
Peter Würtz 2020-03-26 09:42:58 +01:00 committed by GitHub
parent e362ce7423
commit 2561fd182d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3035,7 +3035,7 @@ private:
cls("0-9a-fA-F"), cls("0-9a-fA-F")), cls("0-9a-fA-F"), cls("0-9a-fA-F")),
seq(npd(chr('\\')), dot())); seq(npd(chr('\\')), dot()));
g["LEFTARROW"] <= seq(cho(lit("<-"), lit(u8"")), g["Spacing"]); g["LEFTARROW"] <= seq(cho(lit("<-"), lit(reinterpret_cast<const char*>(u8""))), g["Spacing"]);
~g["SLASH"] <= seq(chr('/'), g["Spacing"]); ~g["SLASH"] <= seq(chr('/'), g["Spacing"]);
~g["PIPE"] <= seq(chr('|'), g["Spacing"]); ~g["PIPE"] <= seq(chr('|'), g["Spacing"]);
g["AND"] <= seq(chr('&'), g["Spacing"]); g["AND"] <= seq(chr('&'), g["Spacing"]);