和之间有什么区别boost::chrono::steady_clock::time_point
,boost::chrono::time_point<boost::chrono::steady_clock,Duration>
为什么它们之间不能相互转换?
这似乎非常多余。
如果它们的持续时间相同,它们可以相互转换。例如,以下内容会很好:
boost::chrono::steady_clock::time_point tp1 = boost::chrono::steady_clock::now();
boost::chrono::time_point<boost::chrono::steady_clock,
boost::chrono::nanoseconds>
tp2 = tp1;
如果它们的持续时间不同,您还可以使用time_point_cast将一个 time_point 转换为另一个。
例子
boost::chrono::steady_clock::time_point tp1 = boost::chrono::steady_clock::now();
boost::chrono::time_point<boost::chrono::steady_clock,
boost::chrono::milliseconds>
tp2 = boost::chrono::time_point_cast<boost::chrono::milliseconds>(tp1);
另外,我不确定您为什么认为它们是多余的。如果您查看文档,steady_clock
则具有以下成员:
typedef chrono::time_point<steady_clock> time_point;
所以,boost::chrono::steady_clock::time_point
只是boost::chrono::time_point<steady_clock>
.
std::chrono::time_point
(基于 Boost)是一个模板,可用于定义一个类,而该类又可用于定义一个时间点。std::chrono::steady_clock::time_point
是可用于定义时间点的模板(即类)的实例化。所以它们是同名的两个完全不同的东西。叹。
正如@JesseGood 指出的那样, can的各种实例化可以与.std::chrono::time_point
time_point_cast