如何获取 std::chrono::time_point 时钟类型

Epi*_*pic 3 c++

我有一个带有 std::chrono::time_point 成员的类。在其中一个类函数中,我想创建另一个具有相同时钟类型的 time_point 。

如何从我的会员处获取时钟类型?

我尝试这样做:

std::chrono::time_point<std::chrono::system_clock> m_time_point;
std::chrono::time_point<m_time_point.clock> new_tp(some_duration)
Run Code Online (Sandbox Code Playgroud)

但这会导致错误:无法使用 '.' 引用 'std::chrono::time_point' 中的类型成员 'clock'

Ser*_*eyA 5

std::chrono::time_point是一个模板,而不是一个类型。因此,您不能拥有这种类型的成员,它必须使用某种类型的时钟进行实例化。假设您拥有它,并且您的会员名为m_time_point,那么获取时钟就很简单:

using clock_t = decltype(m_time_point)::clock;
Run Code Online (Sandbox Code Playgroud)