Modify the synopsis of 20.17.5 [time.duration]:
template <class Rep, class Period = ratio<1>> class duration { public: using rep = Rep; using period = Period; private: rep rep_; // exposition only public: public: // 20.17.5.1, construct/copy/destroy: constexpr duration() = default; template <class Rep2> constexpr explicit duration(const Rep2& r); template <class Rep2, class Period2> constexpr duration(const duration<Rep2, Period2>& d); ~duration() = default; duration(const duration&) = default; duration& operator=(const duration&) = default; // 20.17.5.2, observer: constexpr rep count() const; // 20.17.5.3, arithmetic: constexpr duration operator+() const; constexpr duration operator-() const; constexpr duration& operator++(); constexpr duration operator++(int); constexpr duration& operator--(); constexpr duration operator--(int); constexpr duration& operator+=(const duration& d); constexpr duration& operator-=(const duration& d); constexpr duration& operator*=(const rep& rhs); constexpr duration& operator/=(const rep& rhs); constexpr duration& operator%=(const rep& rhs); constexpr duration& operator%=(const duration& rhs); // 20.17.5.4, special values: static constexpr duration zero(); static constexpr duration min(); static constexpr duration max(); };
Modify 20.17.5.3 [time.duration.arithmetic]:
... constexpr duration& operator++(); ... constexpr duration operator++(int); ... constexpr duration& operator--(); ... constexpr duration operator--(int); ... constexpr duration& operator+=(const duration& d); ... constexpr duration& operator-=(const duration& d); ... constexpr duration& operator*=(const rep& rhs); ... constexpr duration& operator/=(const rep& rhs); ... constexpr duration& operator%=(const rep& rhs); ... constexpr duration& operator%=(const duration& rhs); ...
Modify the synopsis of 20.17.6 [time.point]:
template <class Clock, class Duration = typename Clock::duration> class time_point { public: using clock = Clock; using duration = Duration; using rep = typename duration::rep; using period = typename duration::period; private: duration d_; // exposition only public: // 20.17.6.1, construct: constexpr time_point(); // has value epoch constexpr explicit time_point(const duration& d); // same as time_point() + d template <class Duration2> constexpr time_point(const time_point<clock, Duration2>& t); // 20.17.6.2, observer: constexpr duration time_since_epoch() const; // 20.17.6.3, arithmetic: constexpr time_point& operator+=(const duration& d); constexpr time_point& operator-=(const duration& d); // 20.17.6.4, special values: static constexpr time_point min(); static constexpr time_point max(); };
Modify 20.17.6.3 [time.point.arithmetic]:
... constexpr time_point& operator+=(const duration& d); ... constexpr time_point& operator-=(const duration& d); ...