boost::chrono::steady_clock::time_point
和boost::chrono::time_point<boost::chrono::steady_clock,Duration>
之間的區別是什麼?爲什麼不能在彼此之間進行轉換?boost :: chrono :: time_point <>和boost :: chrono :: steady_clock :: time_point之間的區別
看起來非常多餘。
boost::chrono::steady_clock::time_point
和boost::chrono::time_point<boost::chrono::steady_clock,Duration>
之間的區別是什麼?爲什麼不能在彼此之間進行轉換?boost :: chrono :: time_point <>和boost :: chrono :: steady_clock :: time_point之間的區別
看起來非常多餘。
如果它們的持續時間相同,它們可以相互轉換。例如,下面的就可以了:
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一個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);
另外,我不知道爲什麼你認爲他們是多餘的。如果你看一下docs,steady_clock
有以下成員:
typedef chrono::time_point<steady_clock> time_point;
所以,boost::chrono::steady_clock::time_point
僅僅是boost::chrono::time_point<steady_clock>
一個typedef。
std::chrono::time_point
(基於Boost)是一個模板可以用來定義一個類,該類又可以用來定義一個時間點。 std::chrono::steady_clock::time_point
是可用於定義時間點的該模板(即,類)的實例化。所以他們是兩個完全不同的名字。嘆。
各種實例的std::chrono::time_point
可以像@JesseGood指出的那樣,被幀間轉化與time_point_cast
。
呵呵好吧,這是有道理的。感謝time_point_cast!這會派上用場。 – Qix