Reputation: 22886
chrono takes user-defined literals to make it more convenient. For each literal, it has two overloading functions.
constexpr chrono::hours operator "" h(unsigned long long);
constexpr chrono::duration<unspecified , ratio<3600,1>> operator "" h(long double);
I'm confused by the second overloading function, i.e. the function with long double
as parameter.
Why we need the second overloading? And what is unspecified
?
Upvotes: 3
Views: 184
Reputation: 15501
Both represent std::chrono::duration in hours. The first one forms an integer literal, the second one forms a floating-point literal. First one can represent tick count only, the second one can represent fractions of ticks.
Upvotes: 3