31#ifndef ETL_IN_CHRONO_H
32 #error DO NOT DIRECTLY INCLUDE THIS FILE. USE CHRONO.H
44 template <
typename TDuration>
47 typename etl::enable_if<etl::is_specialization<TDuration, etl::chrono::duration>::value, TDuration>::type
48 absolute(TDuration dur) ETL_NOEXCEPT
50 return TDuration((dur.count() < 0) ? -dur.count() : dur.count());
58 template <
typename TDuration>
64 template <u
intmax_t Den,
int W
idth = 0>
65 struct fractional_width_helper
67 static constexpr int value = fractional_width_helper<Den / 10, Width + 1>::value;
72 struct fractional_width_helper<1, Width>
74 static constexpr int value = Width;
79 struct fractional_width_helper<0, Width>
81 static constexpr int value = 0;
85 template <
typename TDur>
86 struct calculate_fractional_width
88 static constexpr int value = (TDur::period::den == 1)
90 : fractional_width_helper<TDur::period::den>::value;
95 ETL_STATIC_ASSERT((etl::is_specialization<TDuration, etl::chrono::duration>::value),
"TDuration is not a etl::chrono::duration type");
97 static constexpr int fractional_width = calculate_fractional_width<TDuration>::value;
110 : d(TDuration::zero())
130 return d < TDuration::zero();
138 etl::chrono::hours
hours() const ETL_NOEXCEPT
140 auto dur = etl::absolute(d);
149 ETL_CONSTEXPR14 etl::chrono::minutes
minutes() const ETL_NOEXCEPT
151 auto dur = etl::absolute(d) -
hours();
161 etl::chrono::seconds
seconds() const ETL_NOEXCEPT
181 ETL_CONSTEXPR14
explicit operator precision() const ETL_NOEXCEPT
201 template <
typename TDuration>
202 constexpr int etl::chrono::hh_mm_ss<TDuration>::fractional_width;
duration
Definition duration.h:108
ETL_NODISCARD ETL_CONSTEXPR14 bool is_negative() const ETL_NOEXCEPT
Checks for negative duration.
Definition hh_mm_ss.h:128
ETL_NODISCARD ETL_CONSTEXPR14 precision subseconds() const ETL_NOEXCEPT
Returns the subseconds.
Definition hh_mm_ss.h:172
ETL_CONSTEXPR hh_mm_ss() ETL_NOEXCEPT
Default constructor.
Definition hh_mm_ss.h:109
ETL_NODISCARD ETL_CONSTEXPR14 precision to_duration() const ETL_NOEXCEPT
Returns the duration.
Definition hh_mm_ss.h:191
ETL_CONSTEXPR14 hh_mm_ss(TDuration d_) ETL_NOEXCEPT
Construct from duration.
Definition hh_mm_ss.h:118
ETL_NODISCARD ETL_CONSTEXPR14 etl::chrono::hours hours() const ETL_NOEXCEPT
Returns the hours.
Definition hh_mm_ss.h:138
ETL_NODISCARD ETL_CONSTEXPR14 etl::chrono::minutes minutes() const ETL_NOEXCEPT
Returns the minutes.
Definition hh_mm_ss.h:149
ETL_NODISCARD ETL_CONSTEXPR14 etl::chrono::seconds seconds() const ETL_NOEXCEPT
Returns the seconds.
Definition hh_mm_ss.h:161
etl::chrono::duration< common_type_t< typename TDuration::rep, etl::chrono::seconds::rep >, ratio< 1, etl::power< 10, fractional_width >::value > > precision
The return type for to_duration.
Definition hh_mm_ss.h:102
ETL_CONSTEXPR14 TToDuration duration_cast(const etl::chrono::duration< TRep, TPeriod > &d) ETL_NOEXCEPT
duration_cast
Definition duration.h:339
bitset_ext
Definition absolute.h:39
ratio
Definition ratio.h:53