标准库在何处预定义'用户定义'文字" m"界定?

时间:2017-07-20 23:41:28

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

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

  

示例

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

更好的方法是明确双重的意义(旧速度的新速度或增量?)和使用的单位:

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
     

我们本可以接受一个普通(无单位)双重作为delta,但这很容易出错。

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

浪费了几个小时后,投入了资金,弄清楚这可能是一个预定义的标准库,用户定义的'文字和学习更多关于他们,我试图找出这个特定的字面定义在哪里,但是虽然' s'提到here以及其他一些文字,我没有找到关于' m'

的信息。

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

问:标准库预定义的用户定义文字" m"定义*吗

<子> *甜蜜,甜蜜的头韵。

1 个答案:

答案 0 :(得分:6)

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

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

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