summaryrefslogtreecommitdiff
path: root/libs/chrono/test
diff options
context:
space:
mode:
Diffstat (limited to 'libs/chrono/test')
-rw-r--r--libs/chrono/test/Jamfile.v235
-rw-r--r--libs/chrono/test/clock/clock_pass.cpp21
-rw-r--r--libs/chrono/test/duration/arithmetic_pass.cpp146
-rw-r--r--libs/chrono/test/duration/comparisons_pass.cpp59
-rw-r--r--libs/chrono/test/duration/constructor_pass.cpp11
-rw-r--r--libs/chrono/test/rep.h8
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());
}