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

std::literals::chrono_literals::operator""min

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, 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)
 
 
 
<tbody> </tbody>
Определено в заголовочном файле <chrono>
constexpr chrono::minutes operator "" min( unsigned long long mins );
(1) (начиная с C++14)
constexpr chrono::duration</*не определено*/, ratio<60,1>> operator "" min( long double mins );
(2) (начиная с C++14)

Формирует литерал std::chrono::duration, представляющий минуты.

1) Целочисленный литерал, возвращает ровно std::chrono::minutes(mins).
2) Литерал с плавающей запятой, возвращает длительность с плавающей запятой, эквивалентную std::chrono::minutes.

Параметры

mins количество минут

Возвращаемое значение

Литерал std::chrono::duration.

Возможная реализация

constexpr std::chrono::minutes operator ""min(unsigned long long m)
{
    return std::chrono::minutes(m);
}
constexpr std::chrono::duration<long double,
                                std::ratio<60,1>> operator ""min(long double m)
{
    return std::chrono::duration<long double, ratio<60,1>> (m);
}

Примечание

Этот оператор объявлен в пространстве имён 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 lesson = 45min;
    auto halfmin = 0.5min;
    std::cout << "один урок длиться " << lesson.count() << " минут\n"
              << "полминуты это " << halfmin.count() << " минут\n";
}

Вывод:

один урок длиться 45 минут
полминуты это 0.5 минут

Смотрите также

строит новый duration
(public функция-элемент std::chrono::duration<Rep,Period>) [править]