Namespaces
Variants

std::chrono::duration<Rep,Period>:: max

From cppreference.net
static constexpr duration max ( ) ;
(jusqu'à C++20)
static constexpr duration max ( ) noexcept ;
(depuis C++20)

Retourne une durée avec la valeur maximale possible.

Si la représentation rep de la durée nécessite qu'une autre implémentation renvoie une durée de longueur maximale, std::chrono::duration_values peut être spécialisée pour renvoyer la valeur souhaitée.

Table des matières

Paramètres

(aucun)

Valeur de retour

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

Exemple

#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)
        << "L'Âge de l'Univers est ≈ "
        << static_cast<double>(age_of_universe_in_years) << " années ou "
        << static_cast<double>(age_of_universe_in_seconds) << " secondes.\n\n"
        << "chrono::years::max() = " << chrono_years_max
        << ", sizeof(chrono::years) = "
        << sizeof(std::chrono::years) << " octets.\n" "chrono::years "
        << (age_of_universe_in_years <= chrono_years_max ? "PEUT" : "NE PEUT PAS")
        << " contenir l'Âge de l'Univers en ANNÉES.\n\n"
        << "chrono::seconds::max() = " << chrono_seconds_max
        << ", sizeof(chrono::seconds) = "
        << sizeof(std::chrono::seconds) << " octets.\n" "chrono::seconds "
        << (age_of_universe_in_seconds <= chrono_seconds_max ? "PEUT" : "NE PEUT PAS")
        << " contenir l'Âge de l'Univers en SECONDES.\n";
}

Sortie possible :

L'Âge de l'Univers est ≈ 1.38e+10 années ou 4.35e+17 secondes.
chrono::years::max() = 2147483647, sizeof(chrono::years) = 4 octets.
chrono::years NE PEUT PAS contenir l'Âge de l'Univers en ANNÉES.
chrono::seconds::max() = 9223372036854775807, sizeof(chrono::seconds) = 8 octets.
chrono::seconds PEUT contenir l'Âge de l'Univers en SECONDES.

Voir aussi

[static]
renvoie la valeur de durée spéciale zéro
(fonction membre publique statique)
[static]
renvoie la valeur de durée spéciale min
(fonction membre publique statique)