<chrono> 中的用户定义文字重载
user-defined literals overloading in <chrono>
chrono 采用用户定义的文字以使其更方便。对于每个文字,它都有两个重载函数。
constexpr chrono::hours operator "" h(unsigned long long);
constexpr chrono::duration<unspecified , ratio<3600,1>> operator "" h(long double);
我对第二个重载函数感到困惑,即以 long double
作为参数的函数。
为什么我们需要第二次重载?什么是 unspecified
?
Both represent std::chrono::duration 小时。第一个形成整数文字,第二个形成浮点文字。第一个只能表示刻度数,第二个可以表示刻度的分数。
chrono 采用用户定义的文字以使其更方便。对于每个文字,它都有两个重载函数。
constexpr chrono::hours operator "" h(unsigned long long);
constexpr chrono::duration<unspecified , ratio<3600,1>> operator "" h(long double);
我对第二个重载函数感到困惑,即以 long double
作为参数的函数。
为什么我们需要第二次重载?什么是 unspecified
?
Both represent std::chrono::duration 小时。第一个形成整数文字,第二个形成浮点文字。第一个只能表示刻度数,第二个可以表示刻度的分数。