cpp / latest / chrono / last_spec.html /

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

Defined in header <chrono>
struct last_spec
{
    explicit last_spec() = default;
};
(since C++20)
inline constexpr last_spec last{};
(since C++20)

last_spec is an empty tag type that is used in conjunction with other calendar types to indicate the last thing in a sequence. Depending on context, it may indicate the last day of a month (as in 2018y/February/last, for last day of February 2018, i.e., 2018-02-28) or the last day of the week in a month (as in 2018/February/Sunday[last], for last Sunday of February 2018, i.e., 2018-02-25).

Example

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

Output:

true true

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/last_spec