3,881
社区成员
发帖
与我相关
我的任务
分享
[code=c]template<class _Clock,
class _Duration1,
class _Duration2> inline
constexpr typename common_type<_Duration1, _Duration2>::type
operator-(
const time_point<_Clock, _Duration1>& _Left,
const time_point<_Clock, _Duration2>& _Right)
{ // add time_point to time_point
return (_Left.time_since_epoch() - _Right.time_since_epoch());
}
template<class _Rep2,
class _Period2,
class = typename enable_if<treat_as_floating_point<_Rep>::value
|| (_Ratio_divide_sfinae<_Period2, _Period>::den == 1
&& !treat_as_floating_point<_Rep2>::value),
void>::type>
constexpr duration(const duration<_Rep2, _Period2>& _Dur)
: _MyRep(chrono::duration_cast<_Myt>(_Dur).count())
{ // construct from a duration
}
如上代码,可知duration函数的参数取决于
std::chrono::high_resolution_clock::now ()的返回类型
这个类型在不同机器上也许有所不同
正确的做法是让编译器自己去推导duration的参数类型
std::chrono::duration<double> (stop - start).count () ;[/code]