std::chrono...:operator[](3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸŽ€ std::chrono::weekday::operator[] πŸŽ€

okay so bestie, this page is from the C++ Standard Libary manual β€” page title std::chrono...:operator[](3) β€” and it is lowkey giving calendar-girlie main character energy. We're indexing a weekday to get either a weekday_indexed or a weekday_last, which is exactly the "2nd Tuesday" / "last Tuesday" situation. ✨

πŸ’– NAME πŸ’–

std::chrono::weekday::operator[] β€” std::chrono::weekday::operator[]

🌸 Synopsis 🌸

constexpr std::chrono::weekday_indexed                   (1) (since C++20)
    operator[]( unsigned index ) const noexcept;
constexpr std::chrono::weekday_last                      (2) (since C++20)
    operator[]( std::chrono::last_spec ) const noexcept;

Both overloads are constexpr and noexcept, and both are since C++20. Slay. πŸ’…

  1. Constructs a weekday_indexed from *this and index. The result represents the index-th weekday in some yet-to-be-specified month. If index is not in the range [0, 7] or if !ok(), the values held in the result β€” an underlying weekday and an index β€” are unspecified. Bestie, do not trust those values, fr fr 😭.
  2. Constructs a weekday_last from *this. The result represents the last weekday in some yet-to-be-specified month. πŸ¦‹

πŸ¦‹ Return value πŸ¦‹

  1. std::chrono::weekday_indexed(*this, index)
  2. std::chrono::weekday_last(*this)

πŸ“ Example πŸ“

The source page literally has // Run this code right before the snippet, so here is the snippet, unchanged:

#include <chrono>
#include <iostream>
using namespace std::chrono;

int main()
{
    constexpr auto second_tuesday_in_October_2019 =
        year_month_day{Tuesday[2] / October / 2019y};

    constexpr auto last_tuesday_in_October_2019 =
        year_month_day{Tuesday[last] / October / 2019y};

    std::cout << second_tuesday_in_October_2019 << '\n'
              << last_tuesday_in_October_2019 << '\n';
}

πŸ’€ Possible output πŸ’€

2019-10-08
2019-10-29

πŸ’– That's the whole page, bestie. Source/version: http://cppreference.com; date: 2024.06.10. Mwah πŸ’‹

πŸ“¦ where this page comes from