Пространства имён
Варианты
Действия

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

Материал из cppreference.com
< cpp‎ | chrono‎ | duration
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
 
static constexpr duration max();
(до C++20)
static constexpr duration max() noexcept;
(начиная с C++20)

Возвращает длительность с максимально возможным значением.

Если представление длительности rep требует, чтобы какая-либо другая реализация возвращала длительность максимальной длины, std::chrono::duration_values можно настроить для возврата желаемого значения.

Содержание

[править] Параметры

(нет)

[править] Возвращаемое значение

возвращает duration(std::chrono::duration_values<rep>::max())

[править] Пример

#include <chrono>
#include <iostream>
#include <iomanip>
#include <cstdint>
 
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)
        << "Возраст Вселенной ≈ "
        << static_cast<double>(age_of_universe_in_years) << " лет или "
        << static_cast<double>(age_of_universe_in_seconds) << " секунд.\n\n"
        << "chrono::years::max() = " << chrono_years_max << ", sizeof(chrono::years) = "
        << sizeof(std::chrono::years) << " байта.\n" "chrono::years "
        << (age_of_universe_in_years <= chrono_years_max ? "МОЖЕТ" : "НЕ МОЖЕТ")
        << " сохранить Возраст Вселенной в ГОДАХ.\n\n"
        << "chrono::seconds::max() = " << chrono_seconds_max
        << ", sizeof(chrono::seconds) = "
        << sizeof(std::chrono::seconds) << " байтов.\n" "chrono::seconds "
        << (age_of_universe_in_seconds <= chrono_seconds_max ? "МОЖЕТ" : "НЕ МОЖЕТ")
        << " сохранить Возраст Вселенной в СЕКУНДАХ.\n";
}

Возможный вывод:

Возраст Вселенной ≈ 1.38e+10 лет или 4.35e+17 секунд.
 
chrono::years::max() = 2147483647, sizeof(chrono::years) = 4 байта.
chrono::years НЕ МОЖЕТ сохранить Возраст Вселенной в ГОДАХ.
 
chrono::seconds::max() = 9223372036854775807, sizeof(chrono::seconds) = 8 байтов.
chrono::seconds МОЖЕТ сохранить Возраст Вселенной в СЕКУНДАХ.

[править] Смотрите также

[static]
возвращает специальное нулевое значение длительности
(public static функция-элемент) [править]
[static]
возвращает специальное минимальное значение длительности
(public static функция-элемент) [править]