文字运算符模板:为什么不是字符串?

2024-03-23

再次,在回答另一个问题时,我忘记了(我的错),仅当找到整数或浮点文字时,才会从声明集中选取文字运算符模板。

举个例子:

template <char... C>
constexpr int operator "" _x() {
    return 0;
}

它可以用作10_x,但它不能用作foo_x也不作为“foo”_x。

除了显而易见的原因之外因为标准说 http://eel.is/c++draft/lex.ext,在处理字符串文字时不考虑它们的技术原因(如果有)是什么?

我还发现了一个proposal http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3599.html为此(嗯,不完全相同,但它提供了一个想法),但这仍然不是一个选择。
是什么阻止它们用于字符串?


其中涉及字符集和编码以及其他此类混乱的复杂情况。如果运行时和编译时的字符集编码不同,会发生什么情况,如果有多种方法对同一字符进行编码,会发生什么情况,UTF-8 编码的字符串与不同编码的字符串是否会产生任何作用?您是否转换为运行时字符集?

也许有简单的答案;但问题已经够复杂了,提案者们“好吧,我们会删掉这个”,文字就进入了标准。

浮点和整数文字允许的字符有限,并且不存在此问题。

但是您链接到的文档链接到N2750 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2750.pdf,并且直接指出:

可能需要“原始”形式的字符串文字,其中

"Hello, " L"Worl\u0044!"

可以区别于

L"Hello, World!"

但这与翻译阶段的相互作用很严重,并且 目前尚无该功能的令人信服的用例。

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

文字运算符模板:为什么不是字符串? 的相关文章

随机推荐

  • Android 的新 Jack 编译器真的那么慢吗?

    在我的一些 Android 项目中 我发现自从使用新的 Jack 编译器以来 构建速度变得相当慢 我需要它来使用 lambda 等 Java 8 功能 但漫长的建设时间有点令人不安 所以我建立了一个新的Android项目 它只包含一个Mai
  • 在内存中强制渲染 WPF 控件

    我有以下代码 void Test currentImage Source GetBitmap RenderTargetBitmap rtb new RenderTargetBitmap 100 100 96 0 96 0 PixelForm
  • EMR 5.21、Spark 2.4 - Json4s 依赖关系已损坏

    Issue 在 EMR 5 21 中 Spark Hbase 集成已损坏 df write options format save 失败 原因是 Spark 2 4 中的 json4s jackson 版本 3 5 3 EMR 5 21它在
  • 使用 pytest 运行trace.py

    我正在尝试使用trace py跑步时pytest 我知道pytest有自己的覆盖率插件pytest cov但限制 每行执行的次数不可用 不允许我现在使用它 同样对于coverage py 我正在尝试这个命令 python3 4 m trac
  • 使用 WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH 获取所有 MotionEvent

    我的问题直接涉及到这个question https stackoverflow com q 4481226 394933 这个问题的答案表明了如何创建一个ViewGroup 将其嵌入到WindowManager 并允许WindowManag
  • Asp.net 自动完成扩展器不工作

    我想让文本框使用数据库自 动完成 我使用了以下代码 但在输出扩展器中显示了 html 代码 它甚至不执行函数后面的代码 我使用的以下代码无法正常工作 ASPx 页面
  • 如果项目存在于另一个数组中,则从数组中删除它们[重复]

    这个问题在这里已经有答案了 假设我有以下两个包含整数的 PHP 数组 foo array 1 5 9 14 23 31 45 bar array 14 31 36 我想删除其中的项目 foo其中存在相同的值 bar 所以这个过程的结果将创建
  • Wix引导程序

    我使用 WPF 编写了一个托管 wix 引导程序 实际的安装步骤需要链接多个 msi exe 和批处理文件
  • 最终方法是内联的吗?

    Java的final方法会自动内联吗 很多书说可以 很多书说不 方法的内联由 JIT 编译器执行 而不是 javac 现代 JIT 编译器 包括 Hotspot 通常甚至可以内联非最终方法 并在必要时适当地 撤消 优化 他们基本上非常聪明
  • python 中具有等式约束的 L1 凸优化

    我需要在 Mx y 的情况下最小化 L 1 x x 是维度为 b 的向量 y 是维度为 a 的向量 M 是维度为 a b 的矩阵 经过一番阅读后 我决定使用 scipy optimize minimize import numpy as n
  • 将 AWS Chime 集成到 Java 应用程序中

    我正在尝试构建一个 Java Spring 启动应用程序 用于使用 AWS Chime 创建 加入和聊天 我已经浏览了 chime 提供的演示代码 但由 node js 运行 任何人都可以帮助我如何使用 mvc 集成和使用 chime 的
  • 使图像完全填充div而不拉伸

    我有不同尺寸的大图像 需要在两个尺寸上完全填充 240 像素 x 300 像素的容器 这是我现在得到的 仅适用于一维 http jsfiddle net HsE6H http jsfiddle net HsE6H HTML div clas
  • SVG 异物大小不一致

    我正在尝试在 SVG 中创建 2 个 html 对象 并在 Vis js 图表中进一步使用它们 我的第一个 svg 按钮 按预期工作并且看起来不错 我的问题是 当我尝试插入表格 div 时 宽度 高度不是我设置的值 这是我得到的 正如您所看
  • 为输入范围生成红色和绿色之间的颜色[重复]

    这个问题在这里已经有答案了 可能的重复 基于数字的颜色编码 https stackoverflow com questions 5533297 color coding based on number 我希望用户能够从 1 100 的范围内
  • 如何在 Nest js 中使用 fastify-adapter 配置速率限制

    我刚刚开始实现 API 的 Nest js 并且正在使用 Fastify 适配器 我需要帮助在 Nest JS 中使用 FastifyAdapter 配置速率限制 async function bootstrap const app awa
  • 对 super 的调用必须是构造函数中的第一个语句,但它是

    我不断收到错误消息 调用 super 必须是构造函数中的第一个语句 问题是它is我的构造函数中的第一条语句 public void CheckingAccountCustomer int a super n p b accountNo a
  • 将简单的 MFC CView/CDocument/CSingleDocTemplate 应用程序转换为 ActiveX 控件

    我有一个相当简单的 MFC 应用程序 它只定义了自己的子类CDocument CView and CFrameWnd并通过使用它们CSingleDocTemplate在视图的树中显示文档的只读内容 都是非常标准的MFC MVC 我现在需要转
  • TreeSet 如何检查重复项

    我正在检查 TreeSet 如何检查重复元素并具有以下代码 import java util public class TreeDemo public static void main String args new TreeDemo go
  • 两个 Perl 脚本之间的 cgi 会话

    我在我的网站中使用了两个 Perl 脚本 我在侧面有一个搜索字段 它调用第一个脚本 结果写入输出文件中 下一次单击时 用户调用第二个脚本 该脚本读取输出文件并根据用户搜索构建配置文件 目前我只在输出文件上写入 但我需要使用会话 ID 来个性
  • 文字运算符模板:为什么不是字符串?

    再次 在回答另一个问题时 我忘记了 我的错 仅当找到整数或浮点文字时 才会从声明集中选取文字运算符模板 举个例子 template