'unit'-ratio 方便类型定义在哪里?

Where is the 'unit'-ratio convenience typedef?

std::ratio 为公制前缀(centi、deci、deca、hecto)提供方便的类型定义。

yocto   std::ratio<1, 1000000000000000000000000>, if std::intmax_t can represent the denominator
zepto   std::ratio<1, 1000000000000000000000>, if std::intmax_t can represent the denominator
atto    std::ratio<1, 1000000000000000000>
femto   std::ratio<1, 1000000000000000>
pico    std::ratio<1, 1000000000000>
nano    std::ratio<1, 1000000000>
micro   std::ratio<1, 1000000>
milli   std::ratio<1, 1000>
centi   std::ratio<1, 100>
deci    std::ratio<1, 10>
deca    std::ratio<10, 1>
hecto   std::ratio<100, 1>
kilo    std::ratio<1000, 1>
mega    std::ratio<1000000, 1>
giga    std::ratio<1000000000, 1>
tera    std::ratio<1000000000000, 1>
peta    std::ratio<1000000000000000, 1>
exa     std::ratio<1000000000000000000, 1>
zetta   std::ratio<1000000000000000000000, 1>, if std::intmax_t can represent the numerator
yotta   std::ratio<1000000000000000000000000, 1>, if std::intmax_t can represent the numerator 

缺少什么?嗯……单位比例std::ratio<1,1>。 我知道该单位没有官方的公制前缀名称,但这并不意味着它不存在。 [ratio.si]中没有提到单位前缀。所以我想知道:使用 'unit' 比率的 最典型的 方法是什么?例如,当 duration_cast-ing 为整秒时。

what would be the most paradigmatic way to work with a 'unit' ratio?

使用单位比率最实用的方法是不使用它。

这有点像问乘以 1 的最佳方法是什么。你没有。

For example, when duration_cast-ing to whole seconds.

你会写 std::chrono::duration_cast<std::chrono::seconds>.

std::ratio<1,1> 没有名称,因为您永远不需要为它命名。例如 std::duration 已经有一个默认周期 std::ratio<1,1>.

如果您仍想给它起一个名字,您可以这样做:

using unit_ratio = std::ratio<1>;