operator+, operator-(std::chrono::time_point)

From cppreference.com
< cpp‎ | chrono‎ | time point
Date and time library
Time point
(C++11)
(C++20)
Duration
(C++11)
Clocks
(C++11)
(C++11)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
Time of day
(C++20)(C++20)
(C++20)(C++20)
(C++20)

Calendar
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
Time zone
(C++20)
(C++20)
(C++20) (C++20) (C++20) (C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
chrono I/O
(C++20)
C-style date and time
Defined in header <chrono>
(1)
template < class C, class D1, class R2, class P2 >

time_point<C, typename std::common_type <D1, duration<R2,P2>> :: type >
    operator+ ( const time_point<C,D1> & pt,

const duration<R2,P2> & d ) ;
(since C++11)
(until C++14)
template < class C, class D1, class R2, class P2 >

constexpr time_point<C, std::common_type_t <D1, duration<R2,P2>>>
    operator+ ( const time_point<C,D1> & pt,

const duration<R2,P2> & d ) ;
(since C++14)
(2)
template < class R1, class P1, class C, class D2 >

time_point<C, typename std::common_type <duration<R1,P1>,D2> :: type >
    operator+ ( const duration<R1,P1> & d,

const time_point<C,D2> & pt ) ;
(since C++11)
(until C++14)
template < class R1, class P1, class C, class D2 >

constexpr time_point<C, std::common_type_t <duration<R1,P1>,D2>>
    operator+ ( const duration<R1,P1> & d,

const time_point<C,D2> & pt ) ;
(since C++14)
(3)
template < class C, class D1, class R2, class P2 >

time_point<C, typename std::common_type <D1, duration<R2,P2>> :: type >
    operator- ( const time_point<C,D1> & pt,

const duration<R2,P2> & d ) ;
(since C++11)
(until C++14)
template < class C, class D1, class R2, class P2 >

constexpr time_point<C, std::common_type_t <D1, duration<R2,P2>>>
    operator- ( const time_point<C,D1> & pt,

const duration<R2,P2> & d ) ;
(since C++14)
(4)
template < class C, class D1, class D2 >

typename std::common_type <D1,D2> :: type
    operator- ( const time_point<C,D1> & pt_lhs,

const time_point<C,D2> & pt_rhs ) ;
(since C++11)
(until C++14)
template < class C, class D1, class D2 >

constexpr std::common_type_t <D1,D2>
    operator- ( const time_point<C,D1> & pt_lhs,

const time_point<C,D2> & pt_rhs ) ;
(since C++14)

Performs add and subtract operations involving a time_point.

1,2) Applies the offset d to pt. Effectively returns CT(pt.time_since_epoch() + d) , where CT
3) Applies the offset d to pt in negative direction. Effectively returns CT(pt.time_since_epoch() - d) , where CT
4) Computes the difference between pt_lhs and pt_rhs.

Parameters

pt - a time point to apply the offset to
d - a time offset
pt_lhs, pt_rhs - time points to extract difference from

Return value

1-3) The time point that resulted from applying the offset d.
4) The duration between the time points.

Exceptions

May throw implementation-defined exceptions.

Example

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 2739 C++11 pt - d behaved erratically for unsigned durations behavior corrected

See also

modifies the time point by the given duration
(public member function)