【发布时间】:2018-10-13 04:28:38
【问题描述】:
这个问题类似于以下:
但我的答案并不完整。
如果您想获取 当前 日期/时间,您可以调用 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 指的是纪元而不是当前日期/时间,那将是完美的!
【问题讨论】:
-
使用 boost 可选或 std 可选而不是标志值。请!