diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:03:23 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:03:23 +0000 |
| commit | 0dc0969cd0a732760f0aa79942a04e0eaef297c4 (patch) | |
| tree | 051bdb57b1ac6ee143f61ddbb47bd0da619f6f0c /test/std/utilities/time/time.duration | |
| parent | 868847c6900e575417c03bced6e562b3af891318 (diff) | |
Notes
Diffstat (limited to 'test/std/utilities/time/time.duration')
| -rw-r--r-- | test/std/utilities/time/time.duration/time.duration.arithmetic/op_+.pass.cpp | 17 | ||||
| -rw-r--r-- | test/std/utilities/time/time.duration/time.duration.arithmetic/op_-.pass.cpp | 18 |
2 files changed, 31 insertions, 4 deletions
diff --git a/test/std/utilities/time/time.duration/time.duration.arithmetic/op_+.pass.cpp b/test/std/utilities/time/time.duration/time.duration.arithmetic/op_+.pass.cpp index c0f10147ee89..b85f039526a4 100644 --- a/test/std/utilities/time/time.duration/time.duration.arithmetic/op_+.pass.cpp +++ b/test/std/utilities/time/time.duration/time.duration.arithmetic/op_+.pass.cpp @@ -11,11 +11,13 @@ // duration -// duration operator+() const; +// constexpr common_type_t<duration> operator+() const; #include <chrono> #include <cassert> +#include <test_macros.h> + int main() { { @@ -23,11 +25,22 @@ int main() std::chrono::minutes m2 = +m; assert(m.count() == m2.count()); } -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#if TEST_STD_VER >= 11 { constexpr std::chrono::minutes m(3); constexpr std::chrono::minutes m2 = +m; static_assert(m.count() == m2.count(), ""); } #endif + +// P0548 + { + typedef std::chrono::duration<int, std::ratio<10,10> > D10; + typedef std::chrono::duration<int, std::ratio< 1, 1> > D1; + D10 zero(0); + D10 one(1); + static_assert( (std::is_same< decltype(+one), decltype(zero-one) >::value), ""); + static_assert( (std::is_same< decltype(zero+one), D1>::value), ""); + static_assert( (std::is_same< decltype(+one), D1>::value), ""); + } } diff --git a/test/std/utilities/time/time.duration/time.duration.arithmetic/op_-.pass.cpp b/test/std/utilities/time/time.duration/time.duration.arithmetic/op_-.pass.cpp index 00da6f69ca53..347cc1980e81 100644 --- a/test/std/utilities/time/time.duration/time.duration.arithmetic/op_-.pass.cpp +++ b/test/std/utilities/time/time.duration/time.duration.arithmetic/op_-.pass.cpp @@ -11,11 +11,13 @@ // duration -// duration operator-() const; +// constexpr common_type_t<duration> operator-() const; #include <chrono> #include <cassert> +#include <test_macros.h> + int main() { { @@ -23,11 +25,23 @@ int main() std::chrono::minutes m2 = -m; assert(m2.count() == -m.count()); } -#ifndef _LIBCPP_HAS_NO_CONSTEXPR +#if TEST_STD_VER >= 11 { constexpr std::chrono::minutes m(3); constexpr std::chrono::minutes m2 = -m; static_assert(m2.count() == -m.count(), ""); } #endif + +// P0548 + { + typedef std::chrono::duration<int, std::ratio<10,10> > D10; + typedef std::chrono::duration<int, std::ratio< 1, 1> > D1; + D10 zero(0); + D10 one(1); + static_assert( (std::is_same< decltype(-one), decltype(zero-one) >::value), ""); + static_assert( (std::is_same< decltype(zero-one), D1>::value), ""); + static_assert( (std::is_same< decltype(-one), D1>::value), ""); + static_assert( (std::is_same< decltype(+one), D1>::value), ""); + } } |
