这个问题类似于下面的问题:
但我还没有找到答案。
如果您想获取当前日期/时间,您可以调用time(0)
或time(NULL)
,如下所示标准示例:
// current date/time based on current system
time_t now = time(0);
我想定义一个函数,它将返回一个 time_t 并允许客户端在发生错误时传递一个可选的默认返回值。此外,我想为该“默认”参数设置默认值。这在我拥有的库中提供了对称性,具有跨多种语言的一对一对应部分,因此我不打算重新设计所有这些。
我的想法是将默认返回设置为纪元。然后,客户在理论上可以很容易地评估该返回,并决定返回的纪元很可能(如果不总是)表明它是无效的。我可以想到一些替代方案,但没有什么是干净的,也符合我现有的模式。
是否有一种简短而有趣的方法可以使我的函数签名具有此对象的默认值等于纪元?比如
...myfunc(...., const time_t &defVal=time(0) );
如果 0
表示纪元而不是当前日期/时间,那就完美了!
最佳答案
函数 std::time()
返回自纪元以来的秒数作为 std::time_t
。因此,要在纪元设置 std::time_t
后找到 0 秒:
std::time_t t = 0;
所以你可以这样做:
void myfunc(const std::time_t& defVal = 0)
关于c++ - 如何将 C++ time_t 对象设置为纪元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50145198/