簡體   English   中英

boost :: chrono :: time_point <>和boost :: chrono :: steady_clock :: time_point之間的區別

[英]Difference between boost::chrono::time_point<> and boost::chrono::steady_clock::time_point

boost::chrono::steady_clock::time_pointboost::chrono::time_point<boost::chrono::steady_clock,Duration>之間有什么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將一個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只是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM