summaryrefslogtreecommitdiff
path: root/boost/chrono/duration.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/chrono/duration.hpp')
-rw-r--r--boost/chrono/duration.hpp58
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();
}
};