diff options
Diffstat (limited to 'boost/chrono/duration.hpp')
-rw-r--r-- | boost/chrono/duration.hpp | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/boost/chrono/duration.hpp b/boost/chrono/duration.hpp index 737328c418..0a09674f1a 100644 --- a/boost/chrono/duration.hpp +++ b/boost/chrono/duration.hpp @@ -433,12 +433,13 @@ namespace chrono { rep rep_; public: -#if defined BOOST_NO_CXX11_DEFAULTED_FUNCTIONS || \ - defined BOOST_CHRONO_DURATION_DEFAULTS_TO_ZERO +#if defined BOOST_CHRONO_DURATION_DEFAULTS_TO_ZERO BOOST_FORCEINLINE BOOST_CONSTEXPR duration() : rep_(duration_values<rep>::zero()) { } +#elif defined BOOST_NO_CXX11_DEFAULTED_FUNCTIONS + BOOST_CONSTEXPR duration() {} #else - BOOST_CONSTEXPR duration() BOOST_NOEXCEPT : rep_() {}; + BOOST_CONSTEXPR duration() = default; #endif template <class Rep2> BOOST_SYMBOL_VISIBLE BOOST_FORCEINLINE BOOST_CONSTEXPR @@ -542,8 +543,8 @@ namespace chrono { const duration<Rep2, Period2>& rhs) { typedef typename common_type<duration<Rep1, Period1>, - duration<Rep2, Period2> >::type CD; - return CD(CD(lhs).count()+CD(rhs).count()); + duration<Rep2, Period2> >::type common_duration; + return common_duration(common_duration(lhs).count()+common_duration(rhs).count()); } // Duration - @@ -555,8 +556,8 @@ namespace chrono { const duration<Rep2, Period2>& rhs) { typedef typename common_type<duration<Rep1, Period1>, - duration<Rep2, Period2> >::type CD; - return CD(CD(lhs).count()-CD(rhs).count()); + duration<Rep2, Period2> >::type common_duration; + return common_duration(common_duration(lhs).count()-common_duration(rhs).count()); } // Duration * @@ -572,9 +573,9 @@ namespace chrono { >::type operator*(const duration<Rep1, Period>& d, const Rep2& s) { - typedef typename common_type<Rep1, Rep2>::type CR; - typedef duration<CR, Period> CD; - return CD(CD(d).count()*static_cast<CR>(s)); + typedef typename common_type<Rep1, Rep2>::type common_rep; + typedef duration<common_rep, Period> common_duration; + return common_duration(common_duration(d).count()*static_cast<common_rep>(s)); } template <class Rep1, class Period, class Rep2> @@ -601,10 +602,9 @@ namespace chrono { >::type operator/(const duration<Rep1, Period>& d, const Rep2& s) { - typedef typename common_type<Rep1, Rep2>::type CR; - typedef duration<CR, Period> CD; - - return CD(CD(d).count()/static_cast<CR>(s)); + typedef typename common_type<Rep1, Rep2>::type common_rep; + typedef duration<common_rep, Period> common_duration; + return common_duration(common_duration(d).count()/static_cast<common_rep>(s)); } template <class Rep1, class Period1, class Rep2, class Period2> @@ -613,8 +613,8 @@ namespace chrono { operator/(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs) { typedef typename common_type<duration<Rep1, Period1>, - duration<Rep2, Period2> >::type CD; - return CD(lhs).count() / CD(rhs).count(); + duration<Rep2, Period2> >::type common_duration; + return common_duration(lhs).count() / common_duration(rhs).count(); } #ifdef BOOST_CHRONO_EXTENSIONS @@ -626,10 +626,9 @@ namespace chrono { >::type operator/(const Rep1& s, const duration<Rep2, Period>& d) { - typedef typename common_type<Rep1, Rep2>::type CR; - typedef duration<CR, Period> CD; - - return static_cast<CR>(s)/CD(d).count(); + typedef typename common_type<Rep1, Rep2>::type common_rep; + typedef duration<common_rep, Period> common_duration; + return static_cast<common_rep>(s)/common_duration(d).count(); } #endif // Duration % @@ -642,10 +641,9 @@ namespace chrono { >::type operator%(const duration<Rep1, Period>& d, const Rep2& s) { - typedef typename common_type<Rep1, Rep2>::type CR; - typedef duration<CR, Period> CD; - - return CD(CD(d).count()%static_cast<CR>(s)); + typedef typename common_type<Rep1, Rep2>::type common_rep; + typedef duration<common_rep, Period> common_duration; + return common_duration(common_duration(d).count()%static_cast<common_rep>(s)); } template <class Rep1, class Period1, class Rep2, class Period2> @@ -654,9 +652,9 @@ namespace chrono { operator%(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs) { typedef typename common_type<duration<Rep1, Period1>, - duration<Rep2, Period2> >::type CD; + duration<Rep2, Period2> >::type common_duration; - return CD(CD(lhs).count()%CD(rhs).count()); + return common_duration(common_duration(lhs).count()%common_duration(rhs).count()); } @@ -671,8 +669,8 @@ namespace detail { BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const RhsDuration& rhs) const { - typedef typename common_type<LhsDuration, RhsDuration>::type CD; - return CD(lhs).count() == CD(rhs).count(); + typedef typename common_type<LhsDuration, RhsDuration>::type common_duration; + return common_duration(lhs).count() == common_duration(rhs).count(); } }; @@ -690,8 +688,8 @@ namespace detail { BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const RhsDuration& rhs) const { - typedef typename common_type<LhsDuration, RhsDuration>::type CD; - return CD(lhs).count() < CD(rhs).count(); + typedef typename common_type<LhsDuration, RhsDuration>::type common_duration; + return common_duration(lhs).count() < common_duration(rhs).count(); } }; |