gpt4 book ai didi

c++ - 将用户定义的文字与方法调用相结合

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:52 25 4
gpt4 key购买 nike

我想知道为什么我不能写这样的代码:

constexpr double radius = 27_km.to_miles(); // _km returns Distance instance 
// which has to_miles()

GCC 4.8.1 和 Clang 3.4 都提示说他们无法找到文字运算符 operator""_km.to_miles 除非我将 27_km 括在括号中:

constexpr double radius = (27_km).to_miles(); // fine

根据我对标准第 2.14.8 节的阅读,UDL 后缀不能包含句点,那么为什么编译器会这样解析代码?它们是正确的还是错误?

编辑:您可以在此处查看完整示例(具有不同的 UDL 和方法名称):http://ideone.com/rvB1pk

最佳答案

UDL 的后缀应该是一个普通的标识符(带有前导下划线),所以它对我来说像是一个错误。

关于c++ - 将用户定义的文字与方法调用相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19394930/

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