std::chrono::duration::operator+(unary), std::chrono::duration::operator-(unary)

< cpp‎ | chrono‎ | duration
constexpr duration operator+() const;
(until C++17)
constexpr std::common_type_t<duration> operator+() const;
(since C++17)
constexpr duration operator-() const;
(until C++17)
constexpr std::common_type_t<duration> operator-() const;
(since C++17)

Implements unary plus and unary minus for the durations.

If rep_ is a member variable holding the number of ticks in a duration object, and D is the return type,

1) Equivalent to return D(*this);
2) Equivalent to return D(-rep_);



Return value

1) a copy of this duration object
2) a copy of this duration object, with the number of ticks negated


#include <chrono>
#include <iostream>
int main()
    std::chrono::seconds s1(10);
    std::chrono::seconds s2 = -s1;
    std::cout << "negated 10 seconds are " << s2.count() << " seconds\n";


negated 10 seconds are -10 seconds

See also

increments or decrements the tick count
(public member function)
implements arithmetic operations with durations as arguments
(function template)