我搜索了很多网站,什么都没有得到。我知道char8_t是C中的关键字,因为C20。我试图找出在C中,他们是typedef-ing unsigned char
到char8_t
在C23(随着u8 character literals的发布)。谁能澄清我吗?
我搜索了很多网站,什么都没有得到。我知道char8_t是C中的关键字,因为C20。我试图找出在C中,他们是typedef-ing unsigned char
到char8_t
在C23(随着u8 character literals的发布)。谁能澄清我吗?
3条答案
按热度按时间qvsjd97n1#
对
char8_t
类型(或typedef)的支持还没有添加到C23中,我在2018年提交了N2231来添加它,但当时无法参加任何会议来讨论它。编辑日期:2021年6月6日:N2653 (char8_t: A type for UTF-8 characters and strings (Revision 1))已提交用于C2 x。该建议的实现可用于gcc here和glibc here。提交给gcc和glibc的修补程序分别位于here和here。
编辑日期:2022年7月6日:N2653的库部分的实现最终在glibc中实现了landed,预计将于8月份发布2.36版本。
编辑日期:2022年12月30日:在2022年1月/2月的WG 14虚拟会议期间,N2653 (char8_t: A type for UTF-8 characters and strings (Revision 1))被接受用于C23,并且存在N3054 C working draft中所示的措辞。编译器支持存在于gcc的正在开发的分支中,该分支将在4月或5月作为gcc 13发布。编译器支持也存在于Clang的正在开发的分支中,该分支将在3月或4月作为Clang 16发布。
N2653不仅提出了
char8_t
typedef,它还提出将u8
字符串常量的类型改为char8_t
/unsigned char
以匹配u8
字符常量,添加来自C++20的mbrtoc8()
和c8rtomb()
函数,以及添加一些原子相关宏和类型。q9rjltbz2#
没有这样的东西,但你可以用typedef来使用它,因为
char8_t
等价于unsigned char
:现在您有了一个
char8_t
。ljsrvy3e3#
不,到目前为止,C23中还没有
char8_t
。