【发布时间】:2021-07-29 16:00:52
【问题描述】:
浏览 cppreference 表明理论上任何time_point 都应该可以从持续时间构造。
constexpr explicit time_point( const duration& d );
- 在时钟的纪元加上 d 构造一个 time_point。
但是当我在some compilers it does not work, on some it works 上尝试时。
第二个 lambda 不起作用,但令人惊讶的是第一个可以。
更令人惊讶的是,它似乎依赖于 std lib 实现,因为使用 libc++ 的 clang 可以工作。
#include <chrono>
using namespace std::chrono;
int main() {
[] { return steady_clock::time_point(seconds(1000'000'000) + nanoseconds(1)); };
[] { return system_clock::time_point(seconds(1000'000'000) + nanoseconds(1)); };
}
注意:我知道答案,但我觉得它很有趣,所以我想分享,因为我在 SO 上没有找到答案,如果没有人有兴趣回答,我会回答这个问题。
【问题讨论】: