我正在實施我自己的Future
類,它建立在第三方等待功能thirdPartyWait(int milliseconds)
之上。我想我的Future
與接口兼容std::future
,這意味着我想提供wait_for
和wait_until
。我可以使用now()將wait_until轉換爲wait_for嗎?
wait_for
很容易,因爲它直接映射到thirdPartyWait
(我可以處理轉換爲毫秒內的轉換)。但是,wait_until
不能很好地映射。直覺上,我將承擔以下應該做我想做的:
template <class Clock, class Duration>
std::future_status wait_until(const std::chrono::time_point<Clock, Duration> &timeout) const
{
return wait_for(timeout - Clock::now());
}
我測試的代碼和它的作品,但我清楚地知道一個簡單的測試沒有覆蓋所有角落的情況。我不夠熟悉std
的chrono
部分可以肯定的,因此我的問題:
是否有我的執行wait_until
任何隱藏的陷阱,或者我可以期望它像預期的那樣?
如果'時鐘:: rep'是無符號和'timeout'已經過去,會發生什麼? –