//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // duration // template // constexpr // typename common_type::type // operator/(const duration& lhs, const duration& rhs); #include #include #include "test_macros.h" #include "truncate_fp.h" int main(int, char**) { { std::chrono::nanoseconds ns1(15); std::chrono::nanoseconds ns2(5); assert(ns1 / ns2 == 3); } { std::chrono::microseconds us1(15); std::chrono::nanoseconds ns2(5); assert(us1 / ns2 == 3000); } { std::chrono::duration > s1(30); std::chrono::duration > s2(5); assert(s1 / s2 == 6); } { std::chrono::duration > s1(30); std::chrono::duration > s2(5); assert(s1 / s2 == truncate_fp(20./3)); } #if TEST_STD_VER >= 11 { constexpr std::chrono::nanoseconds ns1(15); constexpr std::chrono::nanoseconds ns2(5); static_assert(ns1 / ns2 == 3, ""); } { constexpr std::chrono::microseconds us1(15); constexpr std::chrono::nanoseconds ns2(5); static_assert(us1 / ns2 == 3000, ""); } { constexpr std::chrono::duration > s1(30); constexpr std::chrono::duration > s2(5); static_assert(s1 / s2 == 6, ""); } { constexpr std::chrono::duration > s1(30); constexpr std::chrono::duration > s2(5); static_assert(s1 / s2 == 20./3, ""); } #endif return 0; }