c++ - 标准库predefined 'user-defined' literal "m"是在哪里定义的?

标签 c++ c++-standard-library units-of-measurement

我在浏览 C++ Core Guidlines 时偶然发现了以下示例文档:

Example

change_speed(double s);   // bad: what does s signify?
// ...
change_speed(2.3);

A better approach is to be explicit about the meaning of the double (new speed or delta on old speed?) and the unit used:

change_speed(Speed s);    // better: the meaning of s is specified
// ...
change_speed(2.3);        // error: no unit
change_speed(23m / 10s);  // meters per second

We could have accepted a plain (unit-less) double as a delta, but that would have been error-prone.

关于最后一行代码,该特定页面上没有提及该语法的含义,而且它对我来说看起来非常陌生。

经过几个小时的浪费 时间来弄清楚这可能是一个标准库预定义的“用户定义”文字并了解更多关于它们的信息,我试图找出这个特定文字的定义位置,但是虽然提到's' here连同一些其他文字,我没有找到关于“m”的信息。

还有this关于 SO 的问题,但我认为那里的答案似乎已经完全过时了。

问:标准库预定义的用户定义文字“m”在哪里定义*?


<子> * 甜甜的头韵。

最佳答案

这不是标准的用户定义文字

标准用户定义文字列表可以在底部找到:http://en.cppreference.com/w/cpp/language/user_literal

operator""m 不是其中之一,因为标准库不处理长度单位(目前)。

关于c++ - 标准库predefined 'user-defined' literal "m"是在哪里定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45226801/

相关文章:

c++ - 如何组合来自 std::set 的成对元素?

c++ - std::访问带有重载自由函数而不是函数对象的 std::variant

c++ - C++11 中访问指向 std::vector 中元素 n 的指针的标准方法是什么?

c++ - 具有方法概括 make_shared 和 make_unique 的复合指针特征类?

f# - 如何使用 F# 中的度量单位打印结果单位?

java - java -Xmx1G 是指 10^9 还是 2^30 字节?

c++ - 使用 g++ 时使用 extern "C"{ 对 C++ 代码的影响

c++ - 如何关闭Windows上的某个进程?

c++ - 什么是 freq_table[field_pm_value] = map<string, int>();方法?

android - Android 中测量单位的国际化