std::chrono::abs(std::chrono::duration)
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <chrono>
|
||
template <class Rep, class Period> constexpr std::chrono::duration<Rep, Period> abs( std::chrono::duration<Rep, Period> d ); |
(начиная с C++17) | |
Возвращает абсолютное значение длительности d. В частности, если d >= d.zero(), возвращает d, иначе возвращает -d.
Функция не участвует в разрешении перегрузки, если std::numeric_limits<Rep>::is_signed не равно true.
Параметры
| d | — | длительность |
Возвращаемое значение
Абсолютное значение d.
Возможная реализация
template <class Rep, class Period, class = std::enable_if_t<
class = std::enable_if_t<std::numeric_limits<Rep>::is_signed>>
constexpr std::chrono::duration<Rep, Period> abs(std::chrono::duration<Rep, Period> d)
{
return d >= d.zero() ? d : -d;
}
|
Пример
Запустить этот код
#include <iostream>
#include <chrono>
int main()
{
using namespace std::chrono;
static_assert(abs(-42s) == std::chrono::abs(42s));
std::cout << "abs(+3min) = " << abs(3min).count() << '\n'
<< "abs(-3min) = " << abs(-3min).count() << '\n';
}
Вывод:
abs(+3min) = 3
abs(-3min) = 3
Смотрите также
| реализует унарный + и унарный - (public функция-элемент) | |
(C++11) |
вычисляет абсолютное значение целого числа (|x|) (функция) |