5

http://www.cplusplus.com/reference/ctime/time_tから:

time_t

関数 time によって返される時間を表すことができる基本的な算術型のエイリアス。

歴史的な理由から、これは通常、UTC 1970 年 1 月 1 日 00:00 から経過した秒数を表す整数値 (つまり、UNIX タイムスタンプ) として実装されます。ライブラリは、代替の時間表現を使用してこのタイプを実装する場合があります。

移植可能なプログラムは、この型の値を直接使用するべきではありませんが、常に標準ライブラリの要素への呼び出しに依存して、それらを移植可能な型に変換します。

std::time_t が UNIX 時間として表されないような実装の例を誰かが知っていますか?

4

1 に答える 1

1

§17.6.4.3.4/1 によると:

標準 C ライブラリの各型 T に対して、型 ::T およびstd ::T は実装に予約されており、定義されている場合、::T は std::T と同一でなければなりません。

184 ... 時間_t ...

したがって、time_tとはどちらstd::time_tも実装定義型です。ヒントはなんとなく正しい。

POSIX 互換システムは UNIX 時間として実装しようとしますが、POSIX は C++ 標準に基づいておらず、その逆も同様です。おそらく、特定の組み込みシステムの C++ コンパイラは、将来、別の機能を持つように作成されるでしょうtime_t...

于 2013-11-10T16:50:57.787 に答える