std::chrono...day_indexed(3)

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

πŸ’– std::chrono...day_indexed(3) πŸ’–

okay so bestie, welcome to the C++ Standard Libary manual page for std::chrono::weekday_indexed β€” yes, the header really spells it Libary, and we are keeping that typo lore alive πŸ’…βœ¨

πŸ’– NAME πŸ’–

std::chrono::weekday_indexed β€” literally std::chrono::weekday_indexed. That's the whole name, that's the icon, no notes. πŸŽ€

🌸 Synopsis 🌸

Defined in header <chrono>
class weekday_indexed;      (since C++20)

okay so picture this: weekday_indexed is the combo class. It combines a weekday β€” which represents a day of the week in the proleptic Gregorian calendar β€” with a small index n in the range [1, 5]. It represents the first, second, third, fourth, or fifth weekday of some month. πŸ—“οΈβœ¨

and yes, weekday_indexed is a TriviallyCopyable StandardLayoutType. Both of those exact named things. Periodt. πŸ’…

🫢 Member functions 🫢

  • constructor β€” constructs a weekday_indexed (public member function)
  • weekday β€” access the stored weekday (public member function)
  • index β€” access the stored index (public member function)
  • ok β€” checks if the weekday and index are both valid (public member function)

✨ Nonmember functions ✨

  • operator== β€” compares two weekday_indexed values (C++20) (function)
  • operator<< β€” outputs a weekday_indexed into a stream (C++20) (function template)

πŸŽ€ Helper classes πŸŽ€

  • std::formatter<std::chrono::weekday_indexed> β€” formatting support for weekday_indexed (C++20) (class template specialization)
  • std::hash<std::chrono::weekday_indexed> β€” hash support for std::chrono::weekday_indexed (C++26) (class template specialization)

🧚 Example 🧚

// Run this code β€” literally, go off bestie πŸ‘‡

        #include <chrono>
        #include <iostream>

        int main()
        {
            using namespace std::chrono;

            constexpr weekday_indexed wi = Friday[2];

            // Indexed weekday can be used at any place where chrono::day can be used:
            constexpr year_month_weekday ymwd = 2021y / August / wi;
            static_assert(ymwd == August / wi / 2021y &&
                          ymwd == wi / August / 2021y);
            std::cout << ymwd << '\n';

            constexpr year_month_day ymd{ymwd}; // a conversion
            static_assert(ymd == 2021y / 8 / 13);
            std::cout << ymd << '\n';
        }

🌈 Possible output 🌈

        2021/Aug/Fri[2]
        2021-08-13

and that's the page, bestie 🫢 it came from http://cppreference.com, version/date 2024.06.10, and it's the std::chrono...day_indexed(3) page β€” slay, bye πŸ’‹βœ¨

πŸ“¦ where this page comes from