我正在实施我自己的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'已经过去,会发生什么? –