boost::chrono::steady_clock::time_point
との違いは何ですか?またboost::chrono::time_point<boost::chrono::steady_clock,Duration>
、なぜそれらを相互に変換できないのですか?
非常に冗長なようです。
それらの期間が同じである場合、それらは互いに変換することができます。たとえば、次のようになります。
boost::chrono::steady_clock::time_point tp1 = boost::chrono::steady_clock::now();
boost::chrono::time_point<boost::chrono::steady_clock,
boost::chrono::nanoseconds>
tp2 = tp1;
期間が異なる場合は、time_point_castを使用して1つのtime_pointを別のtime_pointにキャストすることもできます。
例
boost::chrono::steady_clock::time_point tp1 = boost::chrono::steady_clock::now();
boost::chrono::time_point<boost::chrono::steady_clock,
boost::chrono::milliseconds>
tp2 = boost::chrono::time_point_cast<boost::chrono::milliseconds>(tp1);
また、なぜそれらが冗長であると思うのかわかりません。ドキュメントを見るとsteady_clock
、次のメンバーがいます。
typedef chrono::time_point<steady_clock> time_point;
つまり、boost::chrono::steady_clock::time_point
はのtypedefにすぎませんboost::chrono::time_point<steady_clock>
。
std::chrono::time_point
(Boostに基づく)は、ある時点を定義するために使用できるクラスを定義するために使用できるテンプレートです。std::chrono::steady_clock::time_point
は、ある時点を定義するために使用できるそのテンプレート(つまり、クラス)のインスタンス化です。つまり、それらは同じ名前の2つのかなり異なるものです。はぁ。
@JesseGoodが指摘したように、缶のさまざまなインスタンス化は、と相互変換されます。std::chrono::time_point
time_point_cast