未来的 C++ 版本中是否会有 size_t strlen(const char8_t*)

Jer*_*ink -1 c++ c-strings strlen char8-t

char8_t在 C++20 中修复了 的一些问题char,因此我正在考虑使用char8_t而不是charutf8 文本(例如来自命令行的文本)。但后来我注意到strlen标准中没有指定要与 一起使用char8_t,实际上 cstring 库中没有指定函数。我可以期望在下一个标准更新中发生这种情况吗?或者从来没有打算按照我想要的方式char8_t替换?char

Tom*_*ann 5

我是P0482P1423 提案的作者char8_t

这些提案的目的是引入char8_t具有相同级别支持的类型char16_tchar32_t然后后续提供附加功能。这些提案在 C++20 开发周期的后期被采纳(分别在圣地亚哥和科隆会议上),因此没有机会为 C++20 提供其他功能。

P1238中描述的SG16指令之一是标准化新的编码感知文本容器和视图类型。该领域的工作正在取得进展,我们希望将其交付给 C++23。希望这些新的容器和视图能够取代 C++ 中的许多原始字符串处理。

具体来说strlenstrlen就是一个C API。 N2231是一项添加char8_t对 C 的支持的提案(同样,与对char16_t和的现有支持处于同一级别char32_t)。该提案尚未被 WG14 接受。假设它最终被接受,那么后续使用额外的char8_t基于 - 的 C 字符串管理函数(也许也增强对char16_t和的支持char32_t)是有意义的。

目前,我正在努力完成N2231在 gcc 和 glibc 中的实现。一旦完成,我打算向 WG14 提交 N2231 的修订版。

你可以帮忙! SG16是一个开放组。请随时订阅我们的邮件列表,加入我们的 Slack,分享您的想法、需求和愿望,并撰写新功能的提案(我们可以帮助您实现这一点)。