gpt4 book ai didi

c++ - 在C++ 17中为char8_t做准备

转载 作者:行者123 更新时间:2023-12-02 10:23:42 27 4
gpt4 key购买 nike

我正在使用Microsoft Visual C++ 16.1(2019社区),并试图编写在C++ 2020中将是``正确的''代码,该代码应具有char8_t类型,这将是一个无符号的char。我定义这样的类型:

using char8_t = unsigned char;

如下代码:
std:string data;
const char8_t* ptr = data.c_str ();

不会编译,因为如果没有reinterpret_cast,它将不会将有符号的char指针转换为无符号的char指针。我有什么可以做的以为2020年做准备,而无需在各地重新诠释 Actor 阵容?

最佳答案

感谢您的评论。这些评论和进一步的研究纠正了引起最初问题的主要误解。我现在知道2020 char8_t不是UTF-8字符,而2020 u8string不是UTF-8字符串。尽管可以在“UTF-8字符串”实现中使用它们,但事实并非如此。

因此,似乎不可避免地要使用reinterpret_cast,但可以将其隐藏/隔离到一组内联函数重载(或一组功能模板)。必须将utf8string对象(可能是模板)实现为不同的对象(如果在其他地方尚不可用)。

关于c++ - 在C++ 17中为char8_t做准备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56762869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com