Lines Matching full:duration
35 class _LIBCPP_TEMPLATE_VIS duration;
41 struct __is_duration<duration<_Rep, _Period> > : true_type {};
44 struct __is_duration<const duration<_Rep, _Period> > : true_type {};
47 struct __is_duration<volatile duration<_Rep, _Period> > : true_type {};
50 struct __is_duration<const volatile duration<_Rep, _Period> > : true_type {};
55 struct _LIBCPP_TEMPLATE_VIS common_type<chrono::duration<_Rep1, _Period1>, chrono::duration<_Rep2, _Period2> > {
56 typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type, typename __ratio_gcd<_Period1, _Period2>::type>
106 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration duration_cast(const duration<_Rep, _Period>& __fd) {
107 return __duration_cast<duration<_Rep, _Period>, _ToDuration>()(__fd);
128 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration floor(const duration<_Rep, _Period>& __d) {
136 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration ceil(const duration<_Rep, _Period>& __d) {
144 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _ToDuration round(const duration<_Rep, _Period>& __d) {
157 // duration
160 class _LIBCPP_TEMPLATE_VIS duration {
161 static_assert(!__is_duration<_Rep>::value, "A duration representation can not be a duration");
162 static_assert(__is_ratio<_Period>::value, "Second template parameter of duration must be a std::ratio");
163 static_assert(_Period::num > 0, "duration period must be positive");
201 constexpr duration() = default;
203 _LIBCPP_HIDE_FROM_ABI duration() {}
210 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR explicit duration(const _Rep2& __r) : __rep_(__r) {}
219 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR duration(const duration<_Rep2, _Period2>& __d)
220 : __rep_(chrono::duration_cast<duration>(__d).count()) {}
228 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR typename common_type<duration>::type operator+() const {
229 return typename common_type<duration>::type(*this);
231 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR typename common_type<duration>::type operator-() const {
232 return typename common_type<duration>::type(-__rep_);
234 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator++() {
238 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration operator++(int) { return duration(__rep_++); }
239 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator--() {
243 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration operator--(int) { return duration(__rep_--); }
245 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator+=(const duration& __d) {
249 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator-=(const duration& __d) {
254 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator*=(const rep& __rhs) {
258 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator/=(const rep& __rhs) {
262 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator%=(const rep& __rhs) {
266 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 duration& operator%=(const duration& __rhs) {
273 _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR duration zero() _NOEXCEPT {
274 return duration(duration_values<rep>::zero());
276 _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR duration min() _NOEXCEPT {
277 return duration(duration_values<rep>::min());
279 _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR duration max() _NOEXCEPT {
280 return duration(duration_values<rep>::max());
284 typedef duration<long long, nano> nanoseconds;
285 typedef duration<long long, micro> microseconds;
286 typedef duration<long long, milli> milliseconds;
287 typedef duration<long long > seconds;
288 typedef duration< long, ratio< 60> > minutes;
289 typedef duration< long, ratio<3600> > hours;
291 typedef duration< int, ratio_multiply<ratio<24>, hours::period>> days;
292 typedef duration< int, ratio_multiply<ratio<7>, days::period>> weeks;
293 typedef duration< int, ratio_multiply<ratio<146097, 400>, days::period>> years;
294 typedef duration< int, ratio_divide<years::period, ratio<12>>> months;
296 // Duration ==
315 operator==(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
316 return __duration_eq<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs);
321 // Duration !=
325 operator!=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
331 // Duration <
350 operator<(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
351 return __duration_lt<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs);
354 // Duration >
358 operator>(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
362 // Duration <=
366 operator<=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
370 // Duration >=
374 operator>=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
383 operator<=>(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
384 using _Ct = common_type_t<duration<_Rep1, _Period1>, duration<_Rep2, _Period2>>;
390 // Duration +
394 typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type
395 operator+(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
396 typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd;
400 // Duration -
404 typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type
405 operator-(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
406 typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd;
410 // Duration *
416 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR duration<typename common_type<_Rep1, _Rep2>::type, _Period>
417 operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) {
419 typedef duration<_Cr, _Period> _Cd;
427 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR duration<typename common_type<_Rep1, _Rep2>::type, _Period>
428 operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) {
432 // Duration /
440 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR duration<typename common_type<_Rep1, _Rep2>::type, _Period>
441 operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) {
443 typedef duration<_Cr, _Period> _Cd;
449 operator/(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
450 typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Ct;
454 // Duration %
462 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR duration<typename common_type<_Rep1, _Rep2>::type, _Period>
463 operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) {
465 typedef duration<_Cr, _Period> _Cd;
471 typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type
472 operator%(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) {
474 typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd;
481 // Suffixes for duration literals [time.duration.literals]
489 _LIBCPP_HIDE_FROM_ABI constexpr chrono::duration<long double, ratio<3600, 1>> operator""h(long double __h) {
490 return chrono::duration<long double, ratio<3600, 1>>(__h);
497 _LIBCPP_HIDE_FROM_ABI constexpr chrono::duration<long double, ratio<60, 1>> operator""min(long double __m) {
498 return chrono::duration<long double, ratio<60, 1>>(__m);
505 _LIBCPP_HIDE_FROM_ABI constexpr chrono::duration<long double> operator""s(long double __s) {
506 return chrono::duration<long double>(__s);
513 _LIBCPP_HIDE_FROM_ABI constexpr chrono::duration<long double, milli> operator""ms(long double __ms) {
514 return chrono::duration<long double, milli>(__ms);
521 _LIBCPP_HIDE_FROM_ABI constexpr chrono::duration<long double, micro> operator""us(long double __us) {
522 return chrono::duration<long double, micro>(__us);
529 _LIBCPP_HIDE_FROM_ABI constexpr chrono::duration<long double, nano> operator""ns(long double __ns) {
530 return chrono::duration<long double, nano>(__ns);