Здравствуйте, sokel, Вы писали:
S>Как считаете, правильно ли ведут себя эти функции? S>Внутри они используют что-то вроде duration_cast<seconds>. Но в случае большей точности это значит что функция немного по разному обрабатывает время до и после epoch. S>Для отрицательных значений это будет ceil, а для положительных floor:
S>1969-12-31T23:59:59.5 -> 1970-01-01T00:00:00 S>1970-12-31T23:59:59.5 -> 1970-12-31T23:59:59
Хотя можно же использовать to_time_t(floor<seconds>(t)).
Тогда другой вопрос, в структурах типа timespec или protobuf timestamp, предполагающих представление в виде { posix_sec, nanoseconds } какое представление будет более канонично, { 0s, -900ms } или { -1s, 100ms }? Знаковый тип в обоих примерах допускает оба представления.