用户定义的文字在<chrono>中重载

时间:2017-11-23 15:44:29

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

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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