Почему здесь важен порядок std::chrono::floor? ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Почему здесь важен порядок std::chrono::floor?

Сообщение Anonymous »

Это работает:

Код: Выделить всё

  year_month_day day() {
return year_month_day(floor(
zoned_time{
zone,
system_clock::now()
}.get_local_time()));
}
Но мне нужно ограничить() Zoned_time, как указано выше - поскольку это шаблонно по продолжительности, я ожидаю, что смогу ограничить либо это, или результат now(), т.е. сделайте следующее:

Код: Выделить всё

  year_month_day day2() {
return year_month_day(
zoned_time{
zone,
floor(system_clock::now())
}.get_local_time());
}
Поэтому я озадачен тем, почему я получаю следующую ошибку, когда пытаюсь это сделать: должно ли значение Zoned_time, указанное выше, не выражаться в днях, и его можно преобразовать в год_месяц_день?

Код: Выделить всё

error: no matching function for call to ‘std::chrono::year_month_day::year_month_day(std::chrono::local_time)’
48 |             }.get_local_time());
Я использую g++ (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3) (называемый c++) с -std=gnu ++20.

Подробнее здесь: https://stackoverflow.com/questions/790 ... atter-here

Вернуться в «C++»