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

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(使用前将#替换为@)

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

  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 如何从代码中隐藏 div (c#)

    我的页面上有一个 div 元素 我希望根据代码隐藏中的会话值显示 隐藏该元素 我怎样才能做到这一点 给div runat server and an id你可以在你的code behind div 在后面的代码中 theDiv Visibl
  • CMake source_group() 无法在分层项目设置中正常工作

    在进行更改以使 CMake 项目具有分层文件夹管理后 source group 似乎不再正常工作 CMake 只是将所有内容转储到默认过滤器中 我尝试了各种正则表达式来从父级获取每个源文件的相对文件路径 甚至对父级 CMakeLists t
  • iTextSharp 从一页模板高效批量生成 PDF

    我正在使用 ITextSharp 生成多页 PDF 每个页面都有相同的模板 问题是 PDF 的物理大小会随着模板的大小而增长 I HAVE to use 阿克罗菲尔德 我怎么能够reduce最终文件大小 这是 pdf 处理程序的代码片段 p
  • 无法使用Boost.process

    我下载并打包了 1 54 0 版本的 Boost 库 我做了类似回答这个问题的一切 如何在 Visual Studio 2010 中使用 Boost https stackoverflow com questions 2629421 how
  • opencv如何使用鼠标事件不规则地选择图像区域? c/c++ [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 最近在学习opencv 有没有办法使用鼠标事件选择图像区域 我已经尝试过三角形的了 如果我想选择特定区域而不是三角形怎么办 谢谢你 我对此进
  • 将函数模板传递给其他函数

    假设我有一个函数可以对任意容器类型 C 11 执行某些操作 template
  • `uint_fast32_t` 保证至少与 `int` 一样宽吗?

    C 标准规定整数操作数小于int将晋升为int在对它们执行任何算术运算之前 因此 对两个小于的无符号值进行运算int将使用有符号而不是无符号的数学来执行 如果需要确保使用无符号数学对 32 位操作数执行操作 例如 将两个乘积可能超过 2 的
  • C# P2P聊天应用程序设计

    我想创建一个不使用显式服务器的简单聊天应用程序 主要要求是用户可以同时与许多朋友聊天 就像在 Skype 等上一样 我在这里指的不是会议聊天 而是多个单独的聊天窗口 目前 我只想要一个 LAN 消息应用程序 但如果设计能够轻松扩展到 Int
  • 如何在configure.in中测试C++库的可用性?

    我正在 GNU Linux 上开发一个 C 项目 并且正在寻找一种方法来使用 Autotools 测试 IBM Informix 库的存在性和可用性 即编辑configure in 我没有使用 Autotools 的经验 所以基本上我是从该
  • C语言中的积分提升和平衡有什么区别?

    积分提升和平衡有什么区别 我们是否可以总结这两条规则 即在执行任何操作 逻辑运算符 除外 之前 任何类型都至少转换为 int 或 unsigned int 类型 如果任何操作数的类型为更大 则转换为更大的类型比整数 积分促销 是旧的C90术
  • 基本 WinForm KeyDown 事件处理

    我正在使用 WinForms 我已经为KeyDown主窗体的事件 从而调用按钮的Click事件处理程序 The Click调用的事件处理程序取决于按下的特定键 如果用户单击该按钮而不是使用该键 然后随后尝试使用该键 则该键 例如向下箭头 将
  • C - 具有可变数量参数和命令行参数的函数

    我需要排序n按字典顺序排列的作为参数数量可变的函数的参数的字符串数量 在main函数中 字符串被读取为命令行参数 这是我的代码 include
  • 如何使用 Dapper 从 .NET 7 执行 Postgresql 函数,而不列出所有参数的数据类型

    我正在尝试将我的 NET 5 Web API 代码传输到 NET 7 我有一个名为的单例服务DataManager它实现了接口IDataManager 其中一项功能是Execute还有其他 C 函数 称为 Get GerMany 以及 In
  • 在 C# 中创建我的对称密钥

    一直在审查一些对称加密方法 我看到了很多在类中硬编码私有静态变量的示例 通常类似于 string key THISISYOURENCRYPTIONKEY 然后在更远的地方 代码使用它来加密 解密 抛开正确的实现 算法 策略以及存储它的位置
  • 关于捕获异常的良好实践

    我正在用 C 11 编写一个小程序 并且第一次真正使用异常 我有一个关于如何有效捕获异常的问题 经过一番谷歌搜索后我仍然没有答案 这是问题 通过 const 左值引用捕获异常还是通过 const 右值引用捕获异常 哪个更有效 或推荐 在代码
  • 如何反转无符号整数的 4 个字节? [复制]

    这个问题在这里已经有答案了 我试图通过使用 和 以及按位 AND 和 OR 和 来反转无符号整数 但不知道如何执行此操作 我已经拥有的 int main int argc char argv unsigned int getal scanf
  • 从文本文件中读取行并存储到数组中

    如何从文本文件中读取行并将其存储到数组中 例如 我有一个包含 45 行不同行的文本文件 我的尝试 int main int a 45 ifstream myfile enroll assg txt if myfile cout lt lt
  • 使用表达式参数专门化模板

    我有一堂这样的课 template
  • 单击用户控件时如何防止窃取焦点? [复制]

    这个问题在这里已经有答案了 我希望能够单击我的用户控件 而不让它从任何其他控件中窃取焦点 我知道当你点击标签时它不会夺走焦点 如何才能做到这一点 尝试禁用您的控件ControlStyles Selectable http msdn micr

随机推荐

  • 如何自定义@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 标准提到了一个标头