tun*_*2fs 5 c++ visual-studio visual-c++
我需要让以下代码独立于工作平台:
timeval tv;
tv.tv_sec = std::numeric_limits<time_t>::max();
Run Code Online (Sandbox Code Playgroud)
此代码适用于各种Linux OS和Mac OS X.
不幸的是,在windows下,这将返回-1,对于tv.tv_sec.
我当时想过要重新定义time_t,就像这样:
typedef int time_t;
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为漫画者现在抱怨:
error C2371: 'time_t' : redefinition; different basic types
Run Code Online (Sandbox Code Playgroud)
如何获得这个代码在plattform独立运行的代码?
ron*_*nag 12
tv.tv_sec = std::numeric_limits<decltype(tv.tv_sec)>::max();
Run Code Online (Sandbox Code Playgroud)
替代没有decltype
template<typename T>
void set_max(T& val){val = std::numeric_limits<T>::max();}
set_max(tv.tv_sec);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1658 次 |
最近记录: |