diff options
Diffstat (limited to 'libs/chrono/test')
-rw-r--r-- | libs/chrono/test/Jamfile.v2 | 35 | ||||
-rw-r--r-- | libs/chrono/test/clock/clock_pass.cpp | 21 | ||||
-rw-r--r-- | libs/chrono/test/duration/arithmetic_pass.cpp | 146 | ||||
-rw-r--r-- | libs/chrono/test/duration/comparisons_pass.cpp | 59 | ||||
-rw-r--r-- | libs/chrono/test/duration/constructor_pass.cpp | 11 | ||||
-rw-r--r-- | libs/chrono/test/rep.h | 8 |
6 files changed, 154 insertions, 126 deletions
diff --git a/libs/chrono/test/Jamfile.v2 b/libs/chrono/test/Jamfile.v2 index d229818681..9cbb4cc145 100644 --- a/libs/chrono/test/Jamfile.v2 +++ b/libs/chrono/test/Jamfile.v2 @@ -15,12 +15,15 @@ project : requirements <target-os>freebsd:<linkflags>"-lrt" <target-os>linux:<linkflags>"-lrt" + <toolset>clang/<target-os>linux:<linkflags>"-lpthread" <toolset>pgi:<linkflags>"-lrt" #<threading>single:<define>BOOST_CHRONO_THREAD_DISABLED <toolset>msvc:<asynch-exceptions>on <define>BOOST_CHRONO_USES_MPL_ASSERT <define>BOOST_SYSTEM_NO_DEPRECATED - <toolset>sun:<define>BOOST_TYPEOF_EMULATION + #<toolset>sun:<define>BOOST_COMMON_TYPE_DONT_USE_TYPEOF + #<toolset>sun:<define>BOOST_TYPEOF_EMULATION + <toolset>sun:<define>__typeof__=__typeof__ <warnings>all <toolset>gcc:<cxxflags>-Wextra <toolset>gcc:<cxxflags>-pedantic @@ -60,7 +63,8 @@ rule chrono-run ( sources ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(sources[1]:B)_header ] ; } @@ -80,7 +84,8 @@ rule chrono-run2 ( sources : name ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(name)_header ] ; } @@ -102,7 +107,8 @@ rule chrono-run-mt ( sources ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(sources[1]:B)_header ] ; } @@ -122,7 +128,8 @@ rule chrono-run2-mt ( sources : name ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(name)_header ] ; } @@ -143,7 +150,8 @@ rule chrono-run-check ( sources ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(sources[1]:B)_header ] ; } @@ -164,7 +172,8 @@ rule chrono-run-check2 ( sources : name ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(name)_header ] ; } @@ -175,7 +184,8 @@ rule chrono-run-header ( sources ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(sources[1]:B)_header ] ; } @@ -186,7 +196,8 @@ rule chrono-run-header2 ( sources : name ) [ run $(sources) : : : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(name)_header ] ; } @@ -199,7 +210,8 @@ rule chrono-compile ( sources ) : $(sources[1]:B)_lib ] [ compile $(sources) : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(sources[1]:B)_header ] ; } @@ -212,7 +224,8 @@ rule chrono-compile2 ( sources : name ) : $(name)_lib ] [ compile $(sources) : <define>BOOST_CHRONO_HEADER_ONLY - <define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + <define>BOOST_ERROR_CODE_HEADER_ONLY + #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING : $(name)_header ] ; } diff --git a/libs/chrono/test/clock/clock_pass.cpp b/libs/chrono/test/clock/clock_pass.cpp index aff860a870..30259f72d7 100644 --- a/libs/chrono/test/clock/clock_pass.cpp +++ b/libs/chrono/test/clock/clock_pass.cpp @@ -36,6 +36,7 @@ template <typename Clock> void check_clock_now() { typename Clock::time_point t1 = Clock::now(); + (void)t1; } #if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING @@ -45,6 +46,7 @@ void check_clock_now_ec() { boost::system::error_code ec; typename Clock::time_point t1 = Clock::now(ec); + (void)t1; BOOST_TEST(ec.value()==0); } @@ -52,8 +54,10 @@ template <typename Clock> void check_clock_now_throws() { typename Clock::time_point t1 = Clock::now(boost::throws()); + (void)t1; } +#ifndef BOOST_NO_EXCEPTIONS template <typename Clock> void check_clock_now_err(int err) @@ -68,6 +72,7 @@ void check_clock_now_err(int err) } Clock::set_errno(0); } +#endif template <typename Clock> void check_clock_now_ec_err(int err) @@ -80,6 +85,7 @@ void check_clock_now_ec_err(int err) Clock::set_errno(0); } +#ifndef BOOST_NO_EXCEPTIONS template <typename Clock> void check_clock_now_throws_err(int err) { @@ -95,18 +101,19 @@ void check_clock_now_throws_err(int err) Clock::set_errno(0); } #endif +#endif int main() { - check_clock_invariants<boost::chrono::high_resolution_clock>(); + check_clock_invariants<boost::chrono::high_resolution_clock>(); check_clock_now<boost::chrono::high_resolution_clock>(); - + #ifdef BOOST_CHRONO_HAS_CLOCK_STEADY check_clock_invariants<boost::chrono::steady_clock>(); BOOST_CHRONO_STATIC_ASSERT(boost::chrono::steady_clock::is_steady, NOTHING, ()); check_clock_now<boost::chrono::steady_clock>(); #endif - + check_clock_invariants<boost::chrono::system_clock>(); BOOST_CHRONO_STATIC_ASSERT(!boost::chrono::system_clock::is_steady, NOTHING, ()); check_clock_now<boost::chrono::system_clock>(); @@ -119,7 +126,7 @@ int main() typedef boost::chrono::system_clock C; std::time_t t1 = C::to_time_t(C::now()); (void)t1; - + } { BOOST_TEST((boost::chrono::system_clock::duration::min)() < @@ -132,10 +139,10 @@ int main() BOOST_CHRONO_STATIC_ASSERT(boost::chrono::thread_clock::is_steady, NOTHING, ()); check_clock_now<boost::chrono::thread_clock>(); #endif - + #if defined(BOOST_CHRONO_HAS_PROCESS_CLOCKS) check_clock_invariants<boost::chrono::process_real_cpu_clock>(); - BOOST_CHRONO_STATIC_ASSERT(boost::chrono::process_real_cpu_clock::is_steady, NOTHING, ()); + BOOST_CHRONO_STATIC_ASSERT(boost::chrono::process_real_cpu_clock::is_steady, NOTHING, ()); check_clock_now<boost::chrono::process_real_cpu_clock>(); check_clock_invariants<boost::chrono::process_user_cpu_clock>(); @@ -150,7 +157,7 @@ int main() BOOST_CHRONO_STATIC_ASSERT(boost::chrono::process_cpu_clock::is_steady, NOTHING, ()); check_clock_now<boost::chrono::process_cpu_clock>(); #endif - + #if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING check_clock_now_ec<boost::chrono::high_resolution_clock>(); diff --git a/libs/chrono/test/duration/arithmetic_pass.cpp b/libs/chrono/test/duration/arithmetic_pass.cpp index c22a1fe4af..c886bc494d 100644 --- a/libs/chrono/test/duration/arithmetic_pass.cpp +++ b/libs/chrono/test/duration/arithmetic_pass.cpp @@ -17,18 +17,18 @@ int main() { - - + + // UNARY PLUS { - const boost::chrono::minutes m(3); + BOOST_CONSTEXPR boost::chrono::minutes m(3); boost::chrono::minutes m2 = +m; BOOST_TEST(m.count() == m2.count()); } - + // UNARY MINUS { - const boost::chrono::minutes m(3); + BOOST_CONSTEXPR boost::chrono::minutes m(3); boost::chrono::minutes m2 = -m; BOOST_TEST(m2.count() == -m.count()); } @@ -76,19 +76,19 @@ int main() s -= boost::chrono::minutes(2); BOOST_TEST(s.count() == -119); } - // TIMES ASSIGN + // TIMES ASSIGN { boost::chrono::nanoseconds ns(3); ns *= 5; BOOST_TEST(ns.count() == 15); } - // DIVIDE ASSIGN - { + // DIVIDE ASSIGN + { boost::chrono::nanoseconds ns(15); ns /= 5; BOOST_TEST(ns.count() == 3); } - // MODULUS ASSIGN duration + // MODULUS ASSIGN duration { boost::chrono::microseconds us(11); boost::chrono::microseconds us2(3); @@ -97,128 +97,128 @@ int main() us %= boost::chrono::milliseconds(3); BOOST_TEST(us.count() == 2); } - // MODULUS ASSIGN Rep + // MODULUS ASSIGN Rep { boost::chrono::microseconds us(11); us %= 3; BOOST_TEST(us.count() == 2); } - // PLUS + // PLUS { - boost::chrono::seconds s1(3); - boost::chrono::seconds s2(5); - boost::chrono::seconds r = s1 + s2; + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::seconds s2(5); + BOOST_CONSTEXPR boost::chrono::seconds r = s1 + s2; BOOST_TEST(r.count() == 8); } { - boost::chrono::seconds s1(3); - boost::chrono::microseconds s2(5); - boost::chrono::microseconds r = s1 + s2; + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::microseconds s2(5); + BOOST_CONSTEXPR boost::chrono::microseconds r = s1 + s2; BOOST_TEST(r.count() == 3000005); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); - boost::chrono::duration<int, boost::ratio<3, 5> > s2(5); - boost::chrono::duration<int, boost::ratio<1, 15> > r = s1 + s2; + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s2(5); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<1, 15> > r = s1 + s2; BOOST_TEST(r.count() == 75); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); - boost::chrono::duration<double, boost::ratio<3, 5> > s2(5); - boost::chrono::duration<double, boost::ratio<1, 15> > r = s1 + s2; + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); + BOOST_CONSTEXPR boost::chrono::duration<double, boost::ratio<3, 5> > s2(5); + BOOST_CONSTEXPR boost::chrono::duration<double, boost::ratio<1, 15> > r = s1 + s2; BOOST_TEST(r.count() == 75); } - - - // MINUS + + + // MINUS { - boost::chrono::seconds s1(3); - boost::chrono::seconds s2(5); - boost::chrono::seconds r = s1 - s2; + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::seconds s2(5); + BOOST_CONSTEXPR boost::chrono::seconds r = s1 - s2; BOOST_TEST(r.count() == -2); } { - boost::chrono::seconds s1(3); - boost::chrono::microseconds s2(5); - boost::chrono::microseconds r = s1 - s2; + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::microseconds s2(5); + BOOST_CONSTEXPR boost::chrono::microseconds r = s1 - s2; BOOST_TEST(r.count() == 2999995); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); - boost::chrono::duration<int, boost::ratio<3, 5> > s2(5); - boost::chrono::duration<int, boost::ratio<1, 15> > r = s1 - s2; + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s2(5); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<1, 15> > r = s1 - s2; BOOST_TEST(r.count() == -15); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); - boost::chrono::duration<double, boost::ratio<3, 5> > s2(5); - boost::chrono::duration<double, boost::ratio<1, 15> > r = s1 - s2; + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(3); + BOOST_CONSTEXPR boost::chrono::duration<double, boost::ratio<3, 5> > s2(5); + BOOST_CONSTEXPR boost::chrono::duration<double, boost::ratio<1, 15> > r = s1 - s2; BOOST_TEST(r.count() == -15); } - + // TIMES rep { - boost::chrono::nanoseconds ns(3); - ns = ns * 5; - BOOST_TEST(ns.count() == 15); - ns = 6 * ns; - BOOST_TEST(ns.count() == 90); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns(3); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns2 = ns * 5; + BOOST_TEST(ns2.count() == 15); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns3 = 6 * ns2; + BOOST_TEST(ns3.count() == 90); } - - // DIVIDE duration + + // DIVIDE duration { - boost::chrono::nanoseconds ns1(15); - boost::chrono::nanoseconds ns2(5); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns1(15); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns2(5); BOOST_TEST(ns1 / ns2 == 3); } { - boost::chrono::microseconds us1(15); - boost::chrono::nanoseconds ns2(5); + BOOST_CONSTEXPR boost::chrono::microseconds us1(15); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns2(5); BOOST_TEST(us1 / ns2 == 3000); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(30); - boost::chrono::duration<int, boost::ratio<3, 5> > s2(5); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(30); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s2(5); BOOST_TEST(s1 / s2 == 6); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(30); - boost::chrono::duration<double, boost::ratio<3, 5> > s2(5); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(30); + BOOST_CONSTEXPR boost::chrono::duration<double, boost::ratio<3, 5> > s2(5); BOOST_TEST(s1 / s2 == 20./3); } - // DIVIDE rep + // DIVIDE rep { - boost::chrono::nanoseconds ns(15); - ns = ns / 5; - BOOST_TEST(ns.count() == 3); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns(15); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns2 = ns / 5; + BOOST_TEST(ns2.count() == 3); } - // MODULUS duration + // MODULUS duration { - boost::chrono::nanoseconds ns1(15); - boost::chrono::nanoseconds ns2(6); - boost::chrono::nanoseconds r = ns1 % ns2; + BOOST_CONSTEXPR boost::chrono::nanoseconds ns1(15); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns2(6); + BOOST_CONSTEXPR boost::chrono::nanoseconds r = ns1 % ns2; BOOST_TEST(r.count() == 3); } { - boost::chrono::microseconds us1(15); - boost::chrono::nanoseconds ns2(28); - boost::chrono::nanoseconds r = us1 % ns2; + BOOST_CONSTEXPR boost::chrono::microseconds us1(15); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns2(28); + BOOST_CONSTEXPR boost::chrono::nanoseconds r = us1 % ns2; BOOST_TEST(r.count() == 20); } { - boost::chrono::duration<int, boost::ratio<3, 5> > s1(6); - boost::chrono::duration<int, boost::ratio<2, 3> > s2(3); - boost::chrono::duration<int, boost::ratio<1, 15> > r = s1 % s2; + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s1(6); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s2(3); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<1, 15> > r = s1 % s2; BOOST_TEST(r.count() == 24); } - // MODULUS rep + // MODULUS rep { - boost::chrono::nanoseconds ns(15); - ns = ns % 6; - BOOST_TEST(ns.count() == 3); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns(15); + BOOST_CONSTEXPR boost::chrono::nanoseconds ns2 = ns % 6; + BOOST_TEST(ns2.count() == 3); } - + return boost::report_errors(); } diff --git a/libs/chrono/test/duration/comparisons_pass.cpp b/libs/chrono/test/duration/comparisons_pass.cpp index 3ee0090e55..fc7f49e07e 100644 --- a/libs/chrono/test/duration/comparisons_pass.cpp +++ b/libs/chrono/test/duration/comparisons_pass.cpp @@ -14,101 +14,104 @@ #include <boost/chrono/duration.hpp> #include <boost/detail/lightweight_test.hpp> +#define BOOST_CHRONO_TEST(C) if (true) {BOOST_CONSTEXPR bool B = (C); BOOST_TEST(B);} else + int main() { { - boost::chrono::seconds s1(3); - boost::chrono::seconds s2(3); + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::seconds s2(3); + BOOST_CONSTEXPR bool b1 = (s1 == s2); BOOST_TEST(s1 == s2); BOOST_TEST(!(s1 != s2)); } { - boost::chrono::seconds s1(3); - boost::chrono::seconds s2(4); + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::seconds s2(4); BOOST_TEST(!(s1 == s2)); BOOST_TEST(s1 != s2); } { - boost::chrono::milliseconds s1(3); - boost::chrono::microseconds s2(3000); + BOOST_CONSTEXPR boost::chrono::milliseconds s1(3); + BOOST_CONSTEXPR boost::chrono::microseconds s2(3000); BOOST_TEST(s1 == s2); BOOST_TEST(!(s1 != s2)); } { - boost::chrono::milliseconds s1(3); - boost::chrono::microseconds s2(4000); + BOOST_CONSTEXPR boost::chrono::milliseconds s1(3); + BOOST_CONSTEXPR boost::chrono::microseconds s2(4000); BOOST_TEST(!(s1 == s2)); BOOST_TEST(s1 != s2); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); - boost::chrono::duration<int, boost::ratio<3, 5> > s2(10); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s2(10); BOOST_TEST(s1 == s2); BOOST_TEST(!(s1 != s2)); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(10); - boost::chrono::duration<int, boost::ratio<3, 5> > s2(9); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(10); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s2(9); BOOST_TEST(!(s1 == s2)); BOOST_TEST(s1 != s2); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); - boost::chrono::duration<double, boost::ratio<3, 5> > s2(10); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); + BOOST_CONSTEXPR boost::chrono::duration<double, boost::ratio<3, 5> > s2(10); BOOST_TEST(s1 == s2); BOOST_TEST(!(s1 != s2)); } { - boost::chrono::seconds s1(3); - boost::chrono::seconds s2(3); + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::seconds s2(3); BOOST_TEST(!(s1 < s2)); BOOST_TEST(!(s1 > s2)); BOOST_TEST( (s1 <= s2)); BOOST_TEST( (s1 >= s2)); } { - boost::chrono::seconds s1(3); - boost::chrono::seconds s2(4); + BOOST_CONSTEXPR boost::chrono::seconds s1(3); + BOOST_CONSTEXPR boost::chrono::seconds s2(4); BOOST_TEST( (s1 < s2)); BOOST_TEST(!(s1 > s2)); BOOST_TEST( (s1 <= s2)); BOOST_TEST(!(s1 >= s2)); } { - boost::chrono::milliseconds s1(3); - boost::chrono::microseconds s2(3000); + BOOST_CONSTEXPR boost::chrono::milliseconds s1(3); + BOOST_CONSTEXPR boost::chrono::microseconds s2(3000); BOOST_TEST(!(s1 < s2)); BOOST_TEST(!(s1 > s2)); BOOST_TEST( (s1 <= s2)); BOOST_TEST( (s1 >= s2)); } { - boost::chrono::milliseconds s1(3); - boost::chrono::microseconds s2(4000); + BOOST_CONSTEXPR boost::chrono::milliseconds s1(3); + BOOST_CONSTEXPR boost::chrono::microseconds s2(4000); BOOST_TEST( (s1 < s2)); BOOST_TEST(!(s1 > s2)); BOOST_TEST( (s1 <= s2)); BOOST_TEST(!(s1 >= s2)); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); - boost::chrono::duration<int, boost::ratio<3, 5> > s2(10); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s2(10); BOOST_TEST(!(s1 < s2)); BOOST_TEST(!(s1 > s2)); BOOST_TEST( (s1 <= s2)); BOOST_TEST( (s1 >= s2)); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(10); - boost::chrono::duration<int, boost::ratio<3, 5> > s2(9); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(10); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<3, 5> > s2(9); BOOST_TEST(!(s1 < s2)); BOOST_TEST( (s1 > s2)); BOOST_TEST(!(s1 <= s2)); BOOST_TEST( (s1 >= s2)); } { - boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); - boost::chrono::duration<double, boost::ratio<3, 5> > s2(10); + BOOST_CONSTEXPR boost::chrono::duration<int, boost::ratio<2, 3> > s1(9); + BOOST_CONSTEXPR boost::chrono::duration<double, boost::ratio<3, 5> > s2(10); BOOST_TEST(!(s1 < s2)); BOOST_TEST(!(s1 > s2)); BOOST_TEST( (s1 <= s2)); diff --git a/libs/chrono/test/duration/constructor_pass.cpp b/libs/chrono/test/duration/constructor_pass.cpp index e71e96eb06..9e63a41c69 100644 --- a/libs/chrono/test/duration/constructor_pass.cpp +++ b/libs/chrono/test/duration/constructor_pass.cpp @@ -23,7 +23,8 @@ template <class D> void check_default() { - D d=D(); + //D d=D(); + D d; //std::cout << d.count() << std::endl; //std::cout << typename D::rep() << std::endl; BOOST_TEST(d.count() == typename D::rep()); @@ -60,13 +61,17 @@ int main() // default constructor { check_default<boost::chrono::duration<Rep> >(); + // constexpr default constructor + BOOST_CONSTEXPR boost::chrono::duration<int> d; } // constructor from rep { - check_from_rep<boost::chrono::duration<int> >(5); + check_from_rep<boost::chrono::duration<int> >(5); + BOOST_CONSTEXPR boost::chrono::duration<int> d(5); check_from_rep<boost::chrono::duration<int, boost::ratio<3, 2> > >(5); check_from_rep<boost::chrono::duration<Rep, boost::ratio<3, 2> > >(Rep(3)); check_from_rep<boost::chrono::duration<double, boost::ratio<2, 3> > >(5.5); + boost::chrono::duration<double, boost::ratio<2, 3> > d2(5.5); } // constructor from other rep { @@ -74,6 +79,6 @@ int main() BOOST_TEST(d.count() == 5); return boost::report_errors(); } - + return boost::report_errors(); } diff --git a/libs/chrono/test/rep.h b/libs/chrono/test/rep.h index 74be054dab..bbf4346d90 100644 --- a/libs/chrono/test/rep.h +++ b/libs/chrono/test/rep.h @@ -34,7 +34,7 @@ namespace std { template <> struct numeric_limits<Rep> { - static BOOST_CHRONO_CONSTEXPR Rep max BOOST_PREVENT_MACRO_SUBSTITUTION () + static BOOST_CONSTEXPR Rep max BOOST_PREVENT_MACRO_SUBSTITUTION () { return Rep((std::numeric_limits<int>::max)()); } @@ -47,13 +47,13 @@ namespace chrono { template <> struct duration_values<Rep> { - static BOOST_CHRONO_CONSTEXPR Rep zero() {return Rep(0);} - static BOOST_CHRONO_CONSTEXPR Rep max BOOST_PREVENT_MACRO_SUBSTITUTION () + static BOOST_CONSTEXPR Rep zero() {return Rep(0);} + static BOOST_CONSTEXPR Rep max BOOST_PREVENT_MACRO_SUBSTITUTION () { return Rep((std::numeric_limits<int>::max)()); } - static BOOST_CHRONO_CONSTEXPR Rep min BOOST_PREVENT_MACRO_SUBSTITUTION () + static BOOST_CONSTEXPR Rep min BOOST_PREVENT_MACRO_SUBSTITUTION () { return Rep(detail::numeric_limits<Rep>::lowest()); } |