table of contents
        
      
      
    | std::chrono::abs(std::chrono::duration)(3) | C++ Standard Libary | std::chrono::abs(std::chrono::duration)(3) | 
NAME¶
std::chrono::abs(std::chrono::duration) - std::chrono::abs(std::chrono::duration)
Synopsis¶
 Defined in header <chrono>
  
   template< class Rep, class Period >
  
   constexpr std::chrono::duration<Rep, Period> abs( (since C++17)
  
   std::chrono::duration<Rep, Period> d );
  
   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.
Parameters¶
d - duration
Return value¶
Absolute value of d.
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;
  
   }
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
See also¶
 operator+ implements unary + and unary -
  
   operator- (public member function)
  
   abs(int)
  
   labs computes absolute value of an integral value (\(\small{|x|}\)|x|)
  
   llabs (function)
  
   (C++11)
| 2024.06.10 | http://cppreference.com |