C++11 使用chrono,时间应该如何存储为变量?
我使用Chrono来标准化应用程序中时间戳的使用 给定一个时间戳,我将创建一个时间点。然后我将其转换为time\t以作为参数传递C++11 使用chrono,时间应该如何存储为变量?,c++11,chrono,C++11,Chrono,我使用Chrono来标准化应用程序中时间戳的使用 给定一个时间戳,我将创建一个时间点。然后我将其转换为time\t以作为参数传递 std::chrono::system\u clock::to\u time\t(时间点) 我应该通过一个时间点吗?什么似乎是最佳实践 void func(time_t time) 或 我的建议是,除非为了与使用它的其他代码兼容而必须下拉到C API(例如time\t),否则只需停留在(例如std::chrono::system\u clock::time\u po
std::chrono::system\u clock::to\u time\t(时间点)
我应该通过一个时间点吗?什么似乎是最佳实践
void func(time_t time)
或
我的建议是,除非为了与使用它的其他代码兼容而必须下拉到C API(例如
time\t
),否则只需停留在
(例如std::chrono::system\u clock::time\u point
)。它具有更好的精度,并且是一个具有语义“时间点”的独特类型,而不仅仅是一个整数类型
就是我的投票是:
void func(std::chrono::system_clock::time_point timePoint);
C++20将带来许多工具,使使用
类型更容易,这些工具在一个免费的开源库中原型化:
注意我稍微改变了你的建议std::chrono::time_point
是类模板,而不是类型:
template<class Clock, class Duration = typename Clock::duration>
class time_point;
模板
上课时间点;
我选择了system\u clock
,因为这是一个类似于C类型time\u t
的时钟。它计算自1970-01-01 00:00:00 UTC以来的时间,但精度高于time\t
通常的精度
而system\u clock::time\u point
是time\u point
的类型别名(您可以使用其中一种)
有关
的视频教程,请参阅:谢谢Howard。我必须说看到你的答案是一种荣幸:)期待c++20。保持良好的工作状态是cppcon视频引导我走上计时路线:)
template<class Clock, class Duration = typename Clock::duration>
class time_point;