gpt4 book ai didi

c++ - 为什么非下划线名称保留给 UDL 的实现而不是相反?

转载 作者:可可西里 更新时间:2023-11-01 15:19:46 28 4
gpt4 key购买 nike

我知道这是一个旧功能,但请继续阅读 user defined literals例如

return_t operator "" _a(long); // Literal operator for user-defined INTEGRAL literal

我被提醒了

the leading underscore is required. (Only the Standard Library is allowed to define literals without the underscore.) (A)

这似乎打破了模式,因为到目前为止,实现使用下划线名称并给我们留下了好的名称,例如保留给实现的名称是

  1. 包含双下划线
  2. 以下划线开头,后跟大写字母

此外,引用 (A) 在存在规则 (2) 的情况下有些危险。 那么为什么不一致

最佳答案

在将用户定义字面量的想法添加到该语言之前,所有标准字面量都使用不以下划线开头的序列,例如 123L 表示 long int文字。因此,为了保持一致性,标准文字获取命名空间时没有任何特殊前缀,UDL 通过使用 _ 与它们区分开来。

关于c++ - 为什么非下划线名称保留给 UDL 的实现而不是相反?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916254/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com