制作和使用std::chrono::duration<double>无穷大作为包含值是否合法?
std::chrono::duration<double>{ std::numeric_limits<double>::infinity() };
Run Code Online (Sandbox Code Playgroud)
它会表现得像我期望的那样,在添加或减去其他持续时间时保持无限的价值吗?
我通过cppreference挖了但是我发现讨论这个问题的唯一一件事就是duration_cast注意到这一点的页面:
当浮点值为NaN,无穷大或太大而无法通过目标的整数类型表示时,从浮点持续时间转换为整数持续时间会受到未定义的行为.否则,转换为整数持续时间会受到截断,就像使用static_cast到整数类型一样.
这似乎暗示它是合法的,但只是以一种反面的方式.
(我使用的类型代表"请在X秒内唤醒我"的方式,正无限是一个有用的哨兵,代表"当我醒来时我真的不在乎")
尝试提交到Hg存储库时,我收到以下错误:
Z:\wormcard_maker>hg commit -m "asdf"
transaction abort!
rollback completed
abort: phases.new-commit: not a valid phase name ('')
Run Code Online (Sandbox Code Playgroud)
这发生在多个不同的存储库中,并且在重新克隆存储库并重新安装Mercurial后幸存下来.我可以从不同的计算机(运行Linux)提交到存储库.
我在Windows 7上运行了与TortoiseHg 4.8一起发布的Hg 4.8.