op_mod_duration.pass.cpp revision c52f43e72dfcea03037729649da84c23b3beb04a
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <chrono> 11 12// duration 13 14// template <class Rep1, class Period1, class Rep2, class Period2> 15// typename common_type<duration<Rep1, Period1>, duration<Rep2, Period2>>::type 16// operator%(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs); 17 18#include <chrono> 19#include <cassert> 20 21int main() 22{ 23 { 24 std::chrono::nanoseconds ns1(15); 25 std::chrono::nanoseconds ns2(6); 26 std::chrono::nanoseconds r = ns1 % ns2; 27 assert(r.count() == 3); 28 } 29 { 30 std::chrono::microseconds us1(15); 31 std::chrono::nanoseconds ns2(28); 32 std::chrono::nanoseconds r = us1 % ns2; 33 assert(r.count() == 20); 34 } 35 { 36 std::chrono::duration<int, std::ratio<3, 5> > s1(6); 37 std::chrono::duration<int, std::ratio<2, 3> > s2(3); 38 std::chrono::duration<int, std::ratio<1, 15> > r = s1 % s2; 39 assert(r.count() == 24); 40 } 41} 42