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

std::chrono::duration_cast

Материал из cppreference.com
< cpp‎ | chrono‎ | duration

 
 
 
 
std::chrono::duration
Член функций
Оригинал:
Member functions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
duration::duration
duration::operator=
duration::count
duration::zero
duration::min
duration::max
duration::operator+
duration::operator-
duration::operator++
duration::operator--
duration::operator+=
duration::operator-=
duration::operator*=
duration::operator/=
duration::operator%=
Не являющиеся членами функций
Оригинал:
Non-member functions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
common_type
operator+
operator-
operator*
operator/
operator%
operator==
operator!=
operator<
operator<=
operator>
operator>=
duration_cast
Вспомогательные классы
Оригинал:
Helper classes
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
treat_as_floating_point
duration_values
 
template <class ToDuration, class Rep, class Period>
constexpr ToDuration duration_cast(const duration<Rep,Period>& d);
(начиная с C++11)
Преобразует std::chrono::duration в продолжительности различных ToDuration типа.
Оригинал:
Converts a std::chrono::duration to a duration of different type ToDuration.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Нет неявных преобразований используются. Умножения и деления можно избежать где это возможно, если оно известно во время компиляции, что один или несколько параметров 1. Вычисления производятся в широком типа доступны и преобразуется в тип результата только тогда, когда закончите.
Оригинал:
No implicit conversions are used. Multiplications and divisions are avoided where possible, if it is known at compile time that one or more parameters are 1. Computations are done in the widest type available and converted to the result type only when finished.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

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

d -
Продолжительность преобразовать
Оригинал:
duration to convert
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

d преобразуется в продолжительности тип ToDuration.
Оригинал:
d converted to a duration of type ToDuration.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Заметки

Функция не участвует в разрешении перегрузки, если ToDuration является экземпляром std::chrono::duration.
Оригинал:
The function does not participate in the overload resolution unless ToDuration is an instance of std::chrono::duration.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Кастинг между плавающей точкой длительности или между целыми длительности, когда исходный период именно делится на целевую период (например, часов до нескольких минут) может быть выполнена неявно, не duration_cast необходимы.
Оригинал:
Casting between floating-point durations or between integer durations where the source period is exactly divisible by the target period (e.g. hours to minutes) can be performed неявно, no duration_cast is needed.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

Этот пример измеряет время выполнения функции
Оригинал:
This example measures the execution time of a function
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

#include <iostream>
#include <chrono>
#include <thread>
 
void f()
{
    std::this_thread::sleep_for(std::chrono::seconds(1));
}
 
int main()
{
    auto t1 = std::chrono::high_resolution_clock::now();
    f();
    auto t2 = std::chrono::high_resolution_clock::now();
    std::cout << "f() took "
              << std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count()
              << " milliseconds\n";
}

Вывод:

f() took 1000 milliseconds