4

20.11.7.2/1 開始:

クラス のオブジェクトは、 の値が物理時間の進行に伴って決して減少せず、 の値が実時間に対して一定の割合で進行steady_clock する時計を表します。つまり、クロックが調整されない場合があります。time_pointtime_point

概念的にはこれは素晴らしいことですが、ある時点を表すビット数がほぼ確実に限られていることを考えると、安定したクロックの値が永遠に増加し続ける実装を想像するのは困難です。

20.11.3/2 は私の想像力の欠如を裏付けているように思えます。これは、同じ安定した時計から取得したatime_point t1と a laterがある場合、時計が と の間でラップした可能性があるため、 がより早く来るように見える可能性があることを示唆しています。time_point t2t2t1t2

この分野で標準を理解するのは非常に難しいと思います。安定した時計と時計のラッピングの関係と相互作用について、誰かが明確にすることができますか?

4

1 に答える 1

3

steady_clock実際にロールオーバーを目撃したら、バグレポートを提出してください。私のシステムでは、今後 292 年間コンピュータを再起動しないと、2305 年に再起動します。:-)

冗談はさておき、実用的な期間中にクロック ロール オーバーが観測されないように、実装は十分に大きなビット長をサポートする必要があります。コンピューターの起動時から 64 ビット整数でナノ秒をカウントすることは、これの合理的な実装の 1 つです。

于 2013-04-04T17:10:03.793 に答える