std::literals::chrono_literals::operator""h
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <chrono>
|
||
constexpr std::chrono::hours operator "" h(unsigned long long hrs); |
(1) | (начиная с C++14) |
constexpr std::chrono::duration</*не определено*/, std::ratio<3600,1>> operator "" h(long double hrs); |
(2) | (начиная с C++14) |
Формирует литерал std::chrono::duration, представляющий часы.
1) Целочисленный литерал, возвращает ровно
std::chrono::hours(hrs).2) Литерал с плавающей запятой, возвращает длительность с плавающей запятой, эквивалентную std::chrono::hours.
Параметры
| hrs | — | количество часов |
Возвращаемое значение
Литерал std::chrono::duration.
Возможная реализация
constexpr std::chrono::hours operator ""h(unsigned long long h)
{
return std::chrono::hours(h);
}
constexpr std::chrono::duration<long double, ratio<3600,1>> operator ""h(long double h)
{
return std::chrono::duration<long double, std::ratio<3600,1>>(h);
}
|
Примечание
Этот оператор объявлен в пространстве имён std::literals::chrono_literals, где и literals, и chrono_literals это встроенные пространства имён. Доступ к этому оператору можно получить с помощью:
using namespace std::literals,using namespace std::chrono_literals, илиusing namespace std::literals::chrono_literals.
Кроме того, в пространстве имён std::chrono стандартная библиотека предоставляет директиву using namespace literals::chrono_literals;, поэтому, если программист использует using namespace std::chrono; чтобы получить доступ к классам в библиотеке chrono, соответствующие литеральные операторы также становятся видимыми.
Пример
Запустить этот код
#include <iostream>
#include <chrono>
int main()
{
using namespace std::chrono_literals;
auto day = 24h;
auto halfhour = 0.5h;
std::cout << "один день это " << day.count() << " часа (" << day << ")\n"
<< "полчаса это " << halfhour.count() << " часа ("
<< halfhour << ")\n";
}
Вывод:
один день это 24 часа (24h)
полчаса это 0.5 часа (0.5h)
Смотрите также
| строит новый duration (public функция-элемент std::chrono::duration<Rep,Period>)
|