Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么std::chrono::system_clock::to_time_t()不是constexpr? > C++标准(Github.com/CPLUS PLUS/TRAW)具有 TimeTys< /Case>转换函数( STD::Stuly:Calth:_C++_C++11_Constexpr_Chrono - Fatal编程技术网

为什么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))。您还可以按照以下说明提交库缺陷报告:。