Этот вопрос похож на следующее:
преобразование эпохи в time_t
Преобразование time_t в int
но у меня там не совсем мой ответ.
Если вы хотите получить текущую дату / время, вы можете позвонить 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
означало эпоху, а не текущую дату / время!