`` 提供什么,它记录在哪里?

2023-11-30

新的 C++11 标准提到了一个标头<cuchar>,大概类似于 C99 的<uchar.h>.

现在,我们知道 C++11 带来了新的字符类型和文字是专门为 UTF16 和 UTF32 设计的,但我认为该语言实际上不会包含将(依赖于系统的)窄多字节编码转换为其中一种 Unicode 编码的函数。然而,我刚刚发现了标题概要<cuchar>提到功能mbrtoc16/c16rtombr and mbrtoc32/c32rtombr似乎就是这么做的。

不幸的是,除了标头概要之外,该标准对这些函数只字未提。这些函数在哪里定义的,它们的真正作用是什么,我在哪里可以阅读有关它们的更多信息?这是否意味着现在可以完全通过标准 C++ 使用正确的 Unicode,而不需要任何额外的库?


这些在一个2005 年的 WG21 论文但最终标准中并未出现该描述。它们记录在 ISO/IEC 19769:2004 中(编程语言 C 的扩展以支持新的字符数据类型) (draft),C++11 标准引用的。

文字太长,无法在这里发布,但这些是签名:

size_t mbrtoc16(char16_t * pc16, const char * s, size_t n, mbstate_t * ps);
size_t c16rtomb(char * s, char16_t c16, mbstate _t * ps);
size_t mbrtoc32(char32_t * pc32, const char * s, size_t n, mbstate_t * ps);
size_t c32rtomb(char * s, char32_t c32, mbstate_t * ps);

这些函数分别在多字节字符和 UTF-16 或 UTF-32 字符之间进行转换,类似于mbrtowc。没有不可重入的版本,老实说,谁需要它们?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`` 提供什么,它记录在哪里? 的相关文章

随机推荐

  • 如何自定义@FeignClient Expander来转换参数?

    Feign默认扩展器转换参数 final class ToStringExpander implements Expander Override public String expand Object value return value
  • 如何在 Picturebox C# 中添加标签透明度?

    我在其中创建一个程序可以添加标签和图片框 所有控件都必须是面板的子控件 我使用这样的代码 panel2 Controls Add picturebox1 panel2 Controls Add label1 是的 问题是我想要在图片框上贴上
  • java控制台输入

    通过控制台输入的任何数据类型 就像我使用 BufferedReader 类所做的那样 是 String 之后我们将其转换为所需的数据类型 如 Inter parseInt 表示整数 但是在 C 中 我们可以接受任何输入原始数据类型 而在ja
  • std::auto_ptr 到 std::unique_ptr

    随着新标准的到来 以及某些编译器中已经可用的部分 新类型std unique ptr应该是替代品std auto ptr 它们的用法是否完全重叠 这样我可以在我的代码上进行全局查找 替换 不是我会这样做 但如果我这样做 或者我应该意识到一些
  • 搜索短信收件箱

    如何搜索短信收件箱并显示来自特殊号码的最新消息 例如 搜索 999999999 并显示从此号码收到的最后一条消息 有办法做到这一点吗 我已使用此代码返回我的收件箱中的消息数 TextView view Override public voi
  • System.Object 类和结构之间的关系

    我知道我的问题看起来很愚蠢 但我很困惑 如果有人为我澄清这一点 我将不胜感激 我知道结构 例如Int32 是值类型 在堆栈上实例化 而类是引用类型 在堆上实例化 我还知道所有结构都派生自 System Object 类型 它是一个类 我想知
  • 尽管已颁发有效令牌,但仍从 Dynamics 365 返回 401

    我正在尝试重写当前使用 JavaScript 连接到 Dynamics 365 的客户端应用程序 let URL https
  • Ember 2.0 中的 makeBoundHelper 替代方案

    到目前为止 我一直在使用绑定助手在我的博客文章中注入 Google DFP 广告 由于所有 Handlebars API 已在 Ember 2 0 中删除从 Ember 2 0 开始我可以使用什么 import Ember from emb
  • Android 加速度计全系列

    我目前正在处理 Android 传感器 API 和加速计数据 虽然内部组件应该支持高加速 甚至 16g 但我尝试了一些最近的智能手机 发现暴露数据的最大范围通常是 2g 例如Nexus 5 有时是 4g 例如Nexus 4 有没有办法设置传
  • add_library 无法在 CMake 中添加 CSharp 源文件?

    我正在尝试从一组构建 CSharp DLL cs文件 我用的是add library 函数添加源文件 cs文件 但它给出了诸如 add library for library libname without any source files
  • phonegap :: navigator.notification.activityStart()和loadingStart()不起作用

    我尝试在phonegap1 0 在onDeviceReady内部 上调用loadingStart 和activityStart 但它不起作用 有已知的原因吗 它应该运作良好吗 thnx 正如 mmigdol 所说 这些已在 1 0 0 中被
  • 在 fopen a+ 模式下从多个线程/进程写入锁定文件之前是否需要同步/刷新?

    我正在从多个线程对单个文件执行 I O 访问此共享文件foo通过咨询文件锁进行控制 flock 2 with LOCK EX foo被打开fopen 3 mode a a 被选中是因为文档指出 对文件的后续写入将始终以当时的当前位置结束 文
  • 如何在 Tableau 中将不同的 y 轴合并为一个 y 轴

    在 Tableau 中 我想弄清楚如何组合 前吸烟者 从不吸烟 每天吸烟 和 有时吸烟 的 y 轴 我想要一个范围从 0 00 到 1 的 y 轴 非常感谢您的帮助 谢谢 不确定您的理想图形输出 但不要绘制每个单独的度量 将 测量值 药丸拖
  • 为什么会出现反向递归

    问题是 函数是否在再次调用该函数的行暂停 或者是否完全执行然后返回到该行 调用同一函数的行 我还有这个例子 它表明递归是以相反的方式发生的 我猜每个内部函数都保留对其外部函数的引用 并且执行以与正常顺序相反的方式发生 请尽可能详细说明 fu
  • 写入联合中的字节数组并从 int 读取以转换 MISRA C 中的值是否合法?

    我想这一定是以前被问过的 但我无法得到具体的是 否的答案 我有这个代码片段 union integer to byte signed int IntPart unsigned char BytePart 2 typedef union in
  • openssl.so 出现 Rails LoadError:未定义符号:d2i_ECPKParameters

    导轨 版本 轨道3 2 1 ruby v 红宝石 1 9 3p0 2011 10 30 x86 64 linux rpm qa grep openssl openssl 0 9 8e 20 el5 openssl devel 0 9 8e
  • 对象修改的差异

    我只是想知道是否有人可以帮助我解决这个问题 StringBuilder s new StringBuilder 0123456789 s substring 1 2 System out println s s delete 2 8 Sys
  • 如何使用 VBA 在 PowerPoint 演示文稿的所有幻灯片上粘贴水印?

    如何使用VBA向PPT演示文稿的所有幻灯片添加水印 形状倾斜45度且呈灰色 我创建了一个输入框来接受一个字符串变量 该变量将在 PPT 的所有幻灯片上加水印 我还尝试创建一个形状并将输入的变量输入其中 我现在面临一个挑战 将这个形状粘贴到演
  • 将 SelectedItems 绑定到 ObservableCollection 属性

    Why the SelectedItems无法从 XAML 绑定 我如何绑定它并保持应用 MVVM 模式 SelectedItems是无法绑定的只读属性 虽然存在通过附加属性解决此问题的方法
  • `` 提供什么,它记录在哪里?

    新的 C 11 标准提到了一个标头