op_mod_duration.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton//===----------------------------------------------------------------------===// 2e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// 3e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// The LLVM Compiler Infrastructure 4e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// 5e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// This file is distributed under the University of Illinois Open Source 6e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// License. See LICENSE.TXT for details. 7e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// 8e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton//===----------------------------------------------------------------------===// 9e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 10d891f9b872103235cfd2ed452c6f14a4394d9b3aDaniel Malea// <chrono> 11d891f9b872103235cfd2ed452c6f14a4394d9b3aDaniel Malea 12e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// duration 13e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 14e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// template <class Rep1, class Period1, class Rep2, class Period2> 153600d497832c398ffafcba1935389125e15683a3Stephen Wilson// typename common_type<duration<Rep1, Period1>, duration<Rep2, Period2>>::type 163600d497832c398ffafcba1935389125e15683a3Stephen Wilson// operator%(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs); 173600d497832c398ffafcba1935389125e15683a3Stephen Wilson 18e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton#include <chrono> 19e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton#include <cassert> 20e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 21e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Claytonint main() 2248a202dd3ac1fb4ee6709074448dc4d221fa020cGreg Clayton{ 23e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton { 24e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton std::chrono::nanoseconds ns1(15); 2549ce8969d3154e1560106cfe530444c09410f217Greg Clayton std::chrono::nanoseconds ns2(6); 263600d497832c398ffafcba1935389125e15683a3Stephen Wilson std::chrono::nanoseconds r = ns1 % ns2; 27e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton assert(r.count() == 3); 28e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton } 29e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton { 303600d497832c398ffafcba1935389125e15683a3Stephen Wilson std::chrono::microseconds us1(15); 31e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton std::chrono::nanoseconds ns2(28); 32e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton std::chrono::nanoseconds r = us1 % ns2; 33e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton assert(r.count() == 20); 34e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton } 353600d497832c398ffafcba1935389125e15683a3Stephen Wilson { 3648a202dd3ac1fb4ee6709074448dc4d221fa020cGreg Clayton std::chrono::duration<int, std::ratio<3, 5> > s1(6); 3748a202dd3ac1fb4ee6709074448dc4d221fa020cGreg Clayton std::chrono::duration<int, std::ratio<2, 3> > s2(3); 383600d497832c398ffafcba1935389125e15683a3Stephen Wilson std::chrono::duration<int, std::ratio<1, 15> > r = s1 % s2; 39b1db658333cdebca31a128be95e926d80c3c7796Greg Clayton assert(r.count() == 24); 403600d497832c398ffafcba1935389125e15683a3Stephen Wilson } 41b1db658333cdebca31a128be95e926d80c3c7796Greg Clayton} 42b1db658333cdebca31a128be95e926d80c3c7796Greg Clayton