C++0x 中的本地化支持有任何更新吗?

2023-12-23

我对 C++ 语言环境方面的研究越多,我就越了解——它们已经被破坏了。

  • std::time_get-- 不对称std::time_put(如 C strftime/strptime 中所示)并且不允许轻松解析带有 AM/PM 标记的时间。
  • I 发现 http://art-blog.no-ip.info/cppcms/blog/post/49最近,简单的数字格式可能会在某些区域设置下产生非法的 UTF-8(例如ru_RU.UTF-8).
  • std::ctype假设可以在每个字符的基础上完成上/下操作,这是非常简单的(大小写转换可能会改变字符数,并且它取决于上下文)。
  • std::collate-- 不支持排序规则强度(区分大小写或不敏感)。
  • 无法在时间格式中指定与全局时区不同的时区。

以及更多...

  • 有谁知道 C++0x 中的标准方面是否会发生任何变化?
  • 有没有什么方法可以让这些改变变得重要?

Thanks.

EDIT:链接无法访问时的说明:

std::numpunct将千位分隔符定义为 char。因此,当 U+2002 中的分隔符 -- 不同类型的空间时,它不能作为 UTF-8 中的单个字符再现,而是作为多字节序列再现。

在 C API 中struct lconv将千位分隔符定义为字符串并且不会遇到此问题。因此,当您尝试使用 UTF-8 语言环境使用 ASCII 之外的分隔符格式化数字时,会生成无效的 UTF-8。

要重现此错误,请使用 imbued 将 1234 写入 std:ostreamru_RU.UTF-8 locale

EDIT2:我必须承认 POSIX C 本地化 API 工作起来更加流畅:

  • strftime 的倒数 -- strptime (strftime 与std::time_put::put)
  • 由于我上面提到的这一点,数字格式没有问题。

然而它还远未达到完美。

EDIT3:根据有关 C++0x 的最新注释我可以看到std::time_get::get- 如同strptime和相反的std::time_put::put.


我同意你的观点,C++ 缺乏适当的 i18n 支持。

有谁知道 C++0x 中的标准方面是否会发生任何变化?

比赛已经太晚了,所以可能不会。

有没有什么方法可以让这些改变变得重要?

我对此非常悲观。

当被直接询问时,斯特劳斯特鲁普声称他认为目前的状况没有任何问题。如果您阅读了标准,另一位 C++ 大佬(本书作者和所有人)甚至没有意识到 wchar_t 可以是一个字节。

而且 boost 中的一些线程(这似乎推动了未来的方向)对它的工作原理知之甚少,这真是太可怕了。

C++0x 在游戏后期和经过一番努力之后才勉强添加了一些 Unicode 字符数据类型。我不会屏息以待更多。

我想看到更好的东西的唯一机会是如果 i18n 和 C++ 世界中真正优秀/受人尊敬的人直接参与下一版本的标准。不知道那可能是谁:-(

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

C++0x 中的本地化支持有任何更新吗? 的相关文章

随机推荐

  • 调整 rmarkdown 中的弹性位置

    我正在使用 Flextable 在 rmarkdown 中创建的 Word 文档中制作漂亮的表格 这些表格都在文档的中心对齐 我希望它们在左侧对齐 我知道 body add flextable 有一个对齐参数 但该函数似乎用于将弹性表插入现
  • Pandas:当列相等时获取不同行的平均值

    我试图找到不同行中值的平均值 并按其他列中的相似性进行分组 例子 In 14 pd DataFrame col1 1 2 1 2 col2 A C A B col3 1 5 6 9 Out 14 col1 col2 col3 0 1 A 1
  • 当方法为 TaskCompletionSource 变量返回 .Task 时,这意味着什么?

    特别适用于 return tcsInitialize Task 在这堂课上 internal class TextToSpeechImplementation AndroidTextToSpeech tts TaskCompletionSo
  • 跨多个项目/微服务的 Django 模型。如何?

    我想知道如何解决多个 独立的 django 项目 微服务之间的模型结构共享 例如 项目 API 项目 用户仪表板 项目 管理仪表板 项目 统计 每个项目都使用相同的 django 模型 有没有一种正确的方法来解决这个问题 Django 的基
  • 我们可以将“phonegap api”应用程序与纯本机应用程序(obj-C)代码连接起来吗

    我正在做一个项目 第一页应该是 phonegap api html 页面 当点击特定的链接 r 按钮时 它应该被带到本机应用程序 纯 objC 纯本机应用程序 带有视图控制器 表视图等 我们可以将html页面与纯原生代码连接起来吗 如果是
  • 当一段时间过去或浏览器关闭时,cookie 会过期吗?

    我知道我可以设置 cookie 的过期日期 但是我可以让 cookie 在一段时间后或浏览器关闭时过期吗 如果您设置到期日期 则无论浏览器打开还是关闭 它们都会在该日期到期 一旦浏览器关闭 只有非持久性 cookie 才会过期 See co
  • 使用序数值时 php strtotime 函数出现问题

    在 strtotime 中使用序数值时 有时会得到意想不到的结果 例如 为什么 date M j strtotime second Tuesday February 2011 结果是 Feb 15 实际上是third2011 年的星期二 你
  • 如何根据 TCL 数组的键值对其进行排序?

    The INITIAL ARRAY is Key gt Value B 8 C 10 A 5 E 3 D 1 为了获得基于键的排序数组 我使用 set sorted keys array lsort array names INITIAL
  • 如何迭代 C++ 类的变量成员

    我目前正在尝试对我正在读入的一些数据的一堆变量 基于不同相空间中的标准化 进行复杂的变量校正 由于每次校正都遵循相同的过程 我想知道是否会有无论如何 要迭代地执行此操作 而不是单独处理每个变量 因为我需要对大约 18 20 个变量执行此操作
  • 调用函数的宏

    我需要一个宏 或一个函数 但最好是一个宏 它接受函数名称和无限数量的参数 然后将参数传递给函数 假设这个宏是MACROFOO define MACROFOO function what do I put here int foo bar i
  • 剥离列或行以形成一维数组

    我想从 2D 数组创建 1D 数组 而无需仅使用 1 行代码进行循环 例如 newvec oldvec 3 在 MATLAB 中 它将从 oldvec 的第三列创建一个一维数组 newvec 我的搜索告诉我 在 VBA 中执行此操作的唯一方
  • dbo.aspnet_Users 和 dbo.aspnetUsers 之间有什么区别?

    VS 2013 框架 4 5 1 我运行 Aspnet regsql exe 来创建架构 它创建的表中带有下划线 例如 aspnet Users 它还创建了关联的存储过程 这些存储过程确实有效 并且它们将记录添加到表中 例如 将用户添加到
  • RavenDb:更新非规范化参考属性值

    我已经实现了RavenDB非规范化参考 http ravendb net docs faq denormalized updates图案 我正在努力将静态索引和补丁更新请求连接在一起 以确保在引用的实例值更改时更新我的 非规范化引用属性值
  • 什么是内存碎片?

    我听说过在 C 动态内存分配上下文中多次使用过 内存碎片 这个术语 我发现了一些关于如何处理内存碎片的问题 但找不到处理它本身的直接问题 所以 什么是内存碎片 如何判断内存碎片是否是我的应用程序的问题 什么样的程序最有可能受到影响 处理内存
  • DomPDF 不能很好地渲染表格

    我正在尝试使用 DomPDF 获取 PDF 但遇到了一个奇怪的问题 所有数据和其他内容都很好 但当以 PDF 形式呈现时 表格的第一行总是过时 首先 我虽然表格可能会转到下一页 这会导致样式脱离上下文 但我尝试将表格限制为一页 发现问题仍然
  • 什么是好的 php 解析器生成器?

    我需要解析一种小的 迷你语言 用户可以在我的网站上输入它 我想知道 lex 和 jacc 或 antlr 在 php 世界中的对应部分是什么 I used PHP 的 LIME 解析器生成器 http sourceforge net pro
  • 将 Picasso 库与 ListView 一起使用

    我想做的是调整我的自定义 ListView 适配器以使用 Picasso 库从网络获取的图像 我相信我已经更改了适配器以便接受来自 Picasso 的图像 但我不确定如何更改我的实现以使用 ListView 接受它 我相信我必须访问hold
  • 如何通过扩展修改 Chrome 中的当前 url 位置

    我想创建一个扩展 如果用户单击扩展按钮 则将用户重定向到另一个网站 到目前为止 我只看到了为每次点击创建一个新选项卡的扩展 是否可以使用活动选项卡将用户重定向到另一个网站 我尝试过这样的事情 chrome browserAction onC
  • 简单的汇编代码会导致段错误吗?

    section data section text globl start start movl 1 eax this is the linux kernel command number system call for exiting a
  • C++0x 中的本地化支持有任何更新吗?

    我对 C 语言环境方面的研究越多 我就越了解 它们已经被破坏了 std time get 不对称std time put 如 C strftime strptime 中所示 并且不允许轻松解析带有 AM PM 标记的时间 I 发现 http