Namespaces
Variants
Actions

std::chrono::abs(std::chrono::duration)

From cppreference.com
< cpp‎ | chrono‎ | duration
 
 
Date and time library
(C++11)
(C++20)
(C++11)
(C++11)
(C++11)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)

 
std::chrono::duration
Member functions
Non-member functions
Helper classes
 
Defined in header <chrono>
template< class Rep, class Period >
constexpr std::chrono::duration <Rep, Period> abs( std::chrono::duration <Rep, Period> d );
(since C++17)

Returns the absolute value of the duration d. Specifically, if d >= d.zero(), return d, otherwise return -d.

The function does not participate in the overload resolution unless std::numeric_limits <Rep>::is_signed is true.

[edit] Parameters

d - duration

[edit] Return value

Absolute value of d.

[edit] Possible implementation

template<class Rep, class Period,
 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;
}

[edit] Example

Run this code
#include <chrono>
#include <iostream>
 
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';
}

Output:

abs(+3min) = 3
abs(-3min) = 3

[edit] See also

implements unary + and unary -
(public member function) [edit]
computes absolute value of an integral value (\(\small{|x|}\)|x|)
(function) [edit]
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/chrono/duration/abs&oldid=158855"

AltStyle によって変換されたページ (->オリジナル) /