2012-10-24 110 views

回答

3

如果它們的持續時間相同,它們可以相互轉換。例如,下面的就可以了:

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); 

另外,我不知道爲什麼你認爲他們是多餘的。如果你看一下docssteady_clock有以下成員:

typedef chrono::time_point<steady_clock> time_point; 

所以,boost::chrono::steady_clock::time_point僅僅是boost::chrono::time_point<steady_clock>一個typedef。

+0

呵呵好吧,這是有道理的。感謝time_point_cast!這會派上用場。 – Qix

1

std::chrono::time_point(基於Boost)是一個模板可以用來定義一個類,該類又可以用來定義一個時間點。 std::chrono::steady_clock::time_point是可用於定義時間點的該模板(即,類)的實例化。所以他們是兩個完全不同的名字。嘆。

各種實例的std::chrono::time_point可以像@JesseGood指出的那樣,被幀間轉化與time_point_cast

相關問題