Namespaces
Variants

std::chrono:: last_spec, std::chrono:: last

From cppreference.net
Определено в заголовочном файле <chrono>
struct last_spec

{
explicit last_spec ( ) = default ;

} ;
(начиная с C++20)
inline constexpr last_spec last { } ;
(начиная с C++20)

last_spec — это пустой тип тега, который используется совместно с другими календарными типами для обозначения последнего элемента в последовательности. В зависимости от контекста, он может обозначать последний день месяца (как в 2018y / February / last , для последнего дня февраля 2018 года, т.е. 2018-02-28) или последний день недели в месяце (как в 2018 / February / Sunday [ last ] , для последнего воскресенья февраля 2018 года, т.е. 2018-02-25).

Пример

#include <chrono>
int main()
{
    using namespace std::chrono;
    constexpr auto mdl {June/last};
    static_assert(mdl == month_day_last(month(6)));
    constexpr auto ymwdl {year(2023)/December/Tuesday[last]};
    static_assert(ymwdl ==
        year_month_weekday_last(year(2023), month(12), weekday_last(Tuesday)));
}