【发布时间】:2017-12-26 20:44:53
【问题描述】:
我在浏览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我们本可以接受一个普通的(无单位的)双精度作为增量,但这很容易出错。
关于最后一行代码,该特定页面上没有提及该语法的含义,而且它对我来说看起来很陌生。
在浪费几个小时后发现这可能是一个标准库预定义的“用户定义”文字并了解更多关于它们的信息,我试图找出这个特定文字的定义位置,但是虽然's' 被提到 here 以及一些其他文字,我没有找到关于 'm' 的信息。
还有this关于SO的问题,但我认为那里的答案似乎完全过时了。
问:标准库预定义的用户定义文字“m”在哪里定义*?
* 甜蜜、甜蜜的头韵。
【问题讨论】:
标签: c++ c++-standard-library units-of-measurement