为什么std::chrono::system_clock::to_time_t()不是constexpr? > C++标准(Github.com/CPLUS PLUS/TRAW)具有 TimeTys< /Case>转换函数( STD::Stuly:Calth:
考虑到为什么std::chrono::system_clock::to_time_t()不是constexpr? > C++标准(Github.com/CPLUS PLUS/TRAW)具有 TimeTys< /Case>转换函数( STD::Stuly:Calth:,c++,c++11,constexpr,chrono,C++,C++11,Constexpr,Chrono,考虑到时间点和持续时间上的所有操作基本上都是constepr(包括持续时间和时间点),我想不出任何理由来排除它们。快速检查本地机器上的libstdc++源代码,可以确认这些函数是作为简单的持续时间/时间点强制转换实现的 是否有任何理由认为这两个函数不应该是constexpr?这是否只是一个“因为没有人提出他们应该这样做”的例子 这是否只是一个“因为没有人提出他们应该这样做”的例子 是的,我认为这是完全正确的 我很好奇:一旦你得到一个constexpr time\u t,你打算用它做什么?使用ti
时间点
和持续时间
上的所有操作基本上都是constepr
(包括持续时间
和时间点
),我想不出任何理由来排除它们。快速检查本地机器上的libstdc++源代码,可以确认这些函数是作为简单的持续时间/时间点强制转换实现的
是否有任何理由认为这两个函数不应该是constexpr
?这是否只是一个“因为没有人提出他们应该这样做”的例子
这是否只是一个“因为没有人提出他们应该这样做”的例子
是的,我认为这是完全正确的
我很好奇:一旦你得到一个
constexpr time\u t
,你打算用它做什么?使用time\t
的C函数都不是constexpr
我有一个timestamp类,它以前使用time\t
作为内部表示形式。它目前提供了一个来自时间的constexpr
构造函数。现在我想将内部表示更改为time\u point
,但是如果没有constexpr from\u time\t
,我将被迫从time\t
构造函数中删除constexpr
,这可能会破坏下游用户代码。@marack:我明白了。是的,这很令人沮丧。我很想假设一个普通但未指定的纪元和表示,然后进行您自己的constexpr转换。正如您已经注意到的,它非常简单:system_clock::time_point(秒(time_t_value))代码>。您还可以按照以下说明提交库缺陷报告:。