mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Docs: Add suggestion to turn of char8_t behavior for C++20 (#7025)
This commit is contained in:
parent
61b8197942
commit
65a10410e3
@ -404,16 +404,12 @@ ImGui::Text(u8"こんにちは"); // this will always be encoded as UTF-8
|
|||||||
ImGui::Text("こんにちは"); // the encoding of this is depending on compiler settings/flags and may be incorrect.
|
ImGui::Text("こんにちは"); // the encoding of this is depending on compiler settings/flags and may be incorrect.
|
||||||
```
|
```
|
||||||
|
|
||||||
Since C++20, because the C++ committee hate its users, they decided to change the `u8""` syntax to not return `const char*` but a new type `const char_t*` which doesn't cast to `const char*`.
|
Since C++20, because the C++ committee hate its users, they decided to change the `u8""` syntax to not return `const char*` but a new type `const char8_t*` which doesn't cast to `const char*`.
|
||||||
Because of type usage of `u8""` in C++20 is a little more tedious:
|
Because of type usage of `u8""` in C++20 is a little more tedious:
|
||||||
```cpp
|
```cpp
|
||||||
ImGui::Text((const char*)u8"こんにちは");
|
ImGui::Text((const char*)u8"こんにちは");
|
||||||
```
|
```
|
||||||
We suggest using a macro in your codebase:
|
However, you can disable this behavior completely using the compiler option [`/Zc:char8_t-`](https://learn.microsoft.com/en-us/cpp/build/reference/zc-char8-t?view=msvc-170) for MSVC and [`-fno-char8_t`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html) for Clang and GCC.
|
||||||
```cpp
|
|
||||||
#define U8(_S) (const char*)u8##_S
|
|
||||||
ImGui::Text(U8("こんにちは"));
|
|
||||||
```
|
|
||||||
##### [Return to Index](#index)
|
##### [Return to Index](#index)
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user