私が望むのは、エポックからの時間をミリ秒単位で取得し、それを符号なしlongに保存することです。
この関連する質問 が見つかりました。しかし、正直なところ、これはこのような単純なタスクを実行する最も簡単な方法ではありませんか?もっとシンプルなものを期待していますが、 std :: chrono reference には何も見つかりません。どんなアドバイスでも大歓迎です。必ずしもstd::chrono
を使用する必要はありませんが、プラットフォームに依存しないようにします。
_unsigned long milliseconds_since_Epoch =
std::chrono::system_clock::now().time_since_Epoch() /
std::chrono::milliseconds(1);
_
ただし、特にプラットフォームの独立性が必要なため、_unsigned long
_を十分に大きい可能性が高い型に置き換えることをお勧めします。
(unsigned) long long
_std::(u)int64_t
std::chrono::milliseconds::rep
_auto
私には、これはあなたが(整数除算との類推による)精度の損失の危険性があることとと型システムの安全性を残していること(単位なしの数値を与えるための入力された時間)。ただし、コメントで示されているように、一部の人々は、タイプセーフから離れようとする試みには、コードを危険に見せるための意図的な試みを伴うべきだと言うでしょう。あなたがその信念を持っている人々に対処する必要がある場合は、無関係なスタイルの選択に関する議論に入るよりも_duration_cast
_を使用する方が簡単かもしれません:
_unsigned long milliseconds_since_Epoch =
std::chrono::duration_cast<std::chrono::milliseconds>
(std::chrono::system_clock::now().time_since_Epoch()).count();
_