std::chrono::duration<Rep,Period>::max
Материал из cppreference.com
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 функция-элемент) |