//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <chrono>
// duration
// template <class ToDuration, class Rep, class Period>
// ToDuration
// duration_cast(const duration<Rep, Period>& d);
#include<chrono>#include<type_traits>#include<cassert>template<classToDuration,classFromDuration>voidtest(constFromDuration&f,constToDuration&d){typedefdecltype(std::chrono::duration_cast<ToDuration>(f))R;static_assert((std::is_same<R,ToDuration>::value),"");assert(std::chrono::duration_cast<ToDuration>(f)==d);}intmain(){test(std::chrono::milliseconds(7265000),std::chrono::hours(2));test(std::chrono::milliseconds(7265000),std::chrono::minutes(121));test(std::chrono::milliseconds(7265000),std::chrono::seconds(7265));test(std::chrono::milliseconds(7265000),std::chrono::milliseconds(7265000));test(std::chrono::milliseconds(7265000),std::chrono::microseconds(7265000000LL));test(std::chrono::milliseconds(7265000),std::chrono::nanoseconds(7265000000000LL));test(std::chrono::milliseconds(7265000),std::chrono::duration<double,std::ratio<3600>>(7265./3600));test(std::chrono::duration<int,std::ratio<2,3>>(9),std::chrono::duration<int,std::ratio<3,5>>(10));}