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.
Applies the offset d to pt in negative direction. Effectively returns CT(pt.time_since_epoch() - d), where
CTis the return type.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.
- 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 |