std::chrono::duration::max(3)

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

✨ NAME ✨

std::chrono::duration::max β€” std::chrono::duration::max

okay bestie, welcome to the std::chrono::duration::max(3) page from the C++ Standard Libary manual (yes, that’s the manual name, keeping it exactly, no cap 😌). This is the static cutie that hands you the biggest duration value possible. πŸ‘‘πŸ’–


🌸 Synopsis 🌸

static constexpr duration max();           (until C++20)
static constexpr duration max() noexcept;  (since C++20)

Returns a duration with the largest possible value. literally the maximum-length duration energy ✨

If the representation rep of the duration requires some other implementation to return a maximum-length duration, std::chrono::duration_values can be specialized to return the desired value. 🫢 important caveat, bestie, don’t skip it.


πŸŽ€ Parameters πŸŽ€

(none) β€” she takes zero arguments, main character with no entourage πŸ’…


πŸ¦‹ Return value πŸ¦‹

duration(std::chrono::duration_values<rep>::max())


πŸ”₯ Example πŸ”₯

        #include <chrono>
        #include <cstdint>
        #include <iomanip>
        #include <iostream>

        int main()
        {
            constexpr uint64_t chrono_years_max =
       std::chrono::years::max().count();
            constexpr uint64_t chrono_seconds_max =
       std::chrono::seconds::max().count();

            constexpr uint64_t age_of_universe_in_years{13'787'000'000}; //
       Ξ›-CDM β‰ˆ k₁/Hβ‚€ = kβ‚‚/42
            constexpr uint64_t seconds_per_year{365'25 * 24 * 36}; // 365ΒΌ Γ— 24
       Γ— 60 Γ— 60
            constexpr uint64_t
       age_of_universe_in_seconds{age_of_universe_in_years *
                                                          seconds_per_year};
            std::cout
                << std::scientific << std::setprecision(2)
                << "The Age of the Universe is β‰ˆ "
                << static_cast<double>(age_of_universe_in_years) << " years or
       "
                << static_cast<double>(age_of_universe_in_seconds) << "
       seconds.\n\n"
                << "chrono::years::max() = " << chrono_years_max
                << ", sizeof(chrono::years) = "
                << sizeof(std::chrono::years) << " bytes.\n" "chrono::years "
                << (age_of_universe_in_years <= chrono_years_max ? "CAN" :
       "CANNOT")
                << " keep the Age of the Universe in YEARS.\n\n"
                << "chrono::seconds::max() = " << chrono_seconds_max
                << ", sizeof(chrono::seconds) = "
                << sizeof(std::chrono::seconds) << " bytes.\n" "chrono::seconds
       "
                << (age_of_universe_in_seconds <= chrono_seconds_max ? "CAN" :
       "CANNOT")
                << " keep the Age of the Universe in SECONDS.\n";
        }
// Run this code β€” yes bestie, run it, it’s giving big brain astronomy vibes πŸ”­πŸ’«

🌈 Possible output 🌈

The Age of the Universe is β‰ˆ 1.38e+10 years or 4.35e+17 seconds.

chrono::years::max() = 2147483647, sizeof(chrono::years) = 4 bytes.
chrono::years CANNOT keep the Age of the Universe in YEARS.

chrono::seconds::max() = 9223372036854775807, sizeof(chrono::seconds) =
8 bytes.
chrono::seconds CAN keep the Age of the Universe in SECONDS.

πŸ’œ See also πŸ’œ

  • zero β€” returns the special duration value zero [static] (public static member function)
  • min β€” returns the special duration value min [static] (public static member function)

mwah πŸ’‹ this iconic little page came from http://cppreference.com, dated 2024.06.10 β€” stay sliving, bestie 🫢✨

πŸ“¦ where this page comes from