質問するログイン新規登録

回答編集履歴

2

fix typo

2020/11/06 04:53

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > C++のstd::chrono::steady_clockを使用して経過時間の差分を計測したいと考えているのですが、chronoは2038年問題に対応しているのでしょうか?(2038年問題の時刻をまたぐ際に正常に計算できるか)
2
2
 
3
- C++標準ライブラリの[`std::chrono::steady_clock`](https://cpprefjp.github.io/reference/chrono/steady_clock.html)は、基点(epoch)を特に定めない「時間逆行しない時計(clock)」としか定義されません。(外部サーバとの時刻同期操作などの要因によって、通常の“システム時”はプログラムからみて時間逆行する可能性があります。)
3
+ C++標準ライブラリの[`std::chrono::steady_clock`](https://cpprefjp.github.io/reference/chrono/steady_clock.html)は、基点(epoch)を特に定めない「時間逆行しない時計(clock)」としか定義されません。(外部サーバとの時刻同期操作などの要因によって、通常の“システム時”はプログラムからみて時間逆行する可能性があります。)
4
4
 
5
5
  [2038年問題](https://ja.wikipedia.org/wiki/2038%E5%B9%B4%E5%95%8F%E9%A1%8C) は「**UNIX epoch(1970-01-01T00:00:00Z)からの経過時間を32bit幅符号付き整数型で表現** するケースで生じうる問題」を指します。UNIX epochと異なる基点をもつ時計においては、狭義の2038年問題とは無関係です。
6
6
  C++標準ライブラリでは[`std::chrono::system_clock`](https://cpprefjp.github.io/reference/chrono/system_clock.html)や、C++20で追加される[`utc_clock`](https://cpprefjp.github.io/reference/chrono/utc_clock.html)がUNIX epochと同じ基点を持ちます。

1

update

2020/11/06 04:53

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  > C++のstd::chrono::steady_clockを使用して経過時間の差分を計測したいと考えているのですが、chronoは2038年問題に対応しているのでしょうか?(2038年問題の時刻をまたぐ際に正常に計算できるか)
2
2
 
3
- C++標準ライブラリの[`std::chrono::steady_clock`](https://cpprefjp.github.io/reference/chrono/steady_clock.html)は、基点(epoch)を特に定めない「時間逆行しない時計(clock)」としか定義されません。
3
+ C++標準ライブラリの[`std::chrono::steady_clock`](https://cpprefjp.github.io/reference/chrono/steady_clock.html)は、基点(epoch)を特に定めない「時間逆行しない時計(clock)」としか定義されません。(外部サーバとの時刻同期操作などの要因によって、通常の“システム時間”はプログラムからみて時間逆行する可能性があります。)
4
4
 
5
5
  [2038年問題](https://ja.wikipedia.org/wiki/2038%E5%B9%B4%E5%95%8F%E9%A1%8C) は「**UNIX epoch(1970-01-01T00:00:00Z)からの経過時間を32bit幅符号付き整数型で表現** するケースで生じうる問題」を指します。UNIX epochと異なる基点をもつ時計においては、狭義の2038年問題とは無関係です。
6
- C++標準ライブラリでは[`std::chrono::system_clock`](https://cpprefjp.github.io/reference/chrono/system_clock.html)や[`utc_clock`](https://cpprefjp.github.io/reference/chrono/utc_clock.html)などがUNIX epochと同じ基点を持ちます。
6
+ C++標準ライブラリでは[`std::chrono::system_clock`](https://cpprefjp.github.io/reference/chrono/system_clock.html)や、C++20で追加される[`utc_clock`](https://cpprefjp.github.io/reference/chrono/utc_clock.html)がUNIX epochと同じ基点を持ちます。
7
7
 
8
- 2038年問題を「bit幅が不十分な整数型の利用によって生じる問題」と広く解釈した場合、厳密にはC++標準ライブラリの実装品質(Quality of Implementation)依存ます。とはいえ、2038年問題が認識されてから実装されたC++標準ライブラリにおいて、そのような低品質な実装が存在するとは考えにくいでしょう。
8
+ 2038年問題を「bit幅が不十分な整数型の利用によって生じる問題」と広く解釈した場合、厳密にはC++標準ライブラリの実装品質(Quality of Implementation)依存となります。とはいえ、2038年問題が認識されてから実装されたライブラリにおいて、そのような低品質な実装が存在するとは考えにくいでしょう。