operator+, operator-(std::chrono::time_point) - cppreference.com (original) (raw)

| Defined in header | | | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------------------- | | (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 is the return type.

  1. Applies the offset d to pt in negative direction. Effectively returns CT(pt.time_since_epoch() - d), where CT is the return type.

  2. Computes the difference between pt_lhs and pt_rhs.

[edit] Parameters

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

[edit] Return value

1-3) The time point that resulted from applying the offset d.

  1. The duration between the time points.

[edit] Exceptions

May throw implementation-defined exceptions.

[edit] Example

[edit] 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

[edit] See also