为什么std :: chrono :: system_clock :: to_time_t()不是constexpr?

mar*_*ack 6 c++ constexpr c++11 c++-chrono

C++标准(github.com/cplusplus/draft)具有time_t转换函数(std::chrono::system_clock::to_time_tstd::chrono::system_clock::from_time_t)对列为staticnoexcept但不是constexpr.

由于基本上所有的操作对time_pointdurationconstexpr(包括duration_casttime_point_cast),我想不出任何理由将它们排除在外.快速检查本地计算机上的libstdc ++源代码确认这些函数是作为简单的duration/time_point强制转换实现的.

这两个功能不应该是什么原因constexpr吗?这只是"因为没有人提出他们应该"的情况吗?

How*_*ant 3

这是否只是“因为没有人建议他们应该这样做”的情况?

是的,我认为这是完全正确的。

我很好奇:一旦你得到了constexpr time_t,你打算用它做什么?没有一个 C 函数time_t采用constexpr.