【问题标题】:user-defined literals overloading in <chrono><chrono> 中的用户定义文字重载
【发布时间】:2017-11-23 15:44:28
【问题描述】:

chrono 采用用户定义的文字以使其更方便。对于每个字面量,它都有两个重载函数。

constexpr chrono::hours operator "" h(unsigned long long);
constexpr chrono::duration<unspecified , ratio<3600,1>> operator "" h(long double);

我对第二个重载函数感到困惑,即以long double为参数的函数。

为什么我们需要第二次重载? unspecified 是什么?

【问题讨论】:

  • 请参阅this documentation 了解为什么存在两个重载。至于unspecified,它是实现定义
  • 这是准确的答案。非常感谢!

标签: c++ c++11 c++14 user-defined-literals


【解决方案1】:

Both 以小时为单位表示 std::chrono::duration。第一个形成整数文字,第二个形成浮点文字。第一个只能表示滴答计数,第二个可以表示滴答的分数。

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多