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