18d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//===----------------------------------------------------------------------===// 28d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// 38d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// The LLVM Compiler Infrastructure 48d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// 58d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// This file is dual licensed under the MIT and the University of Illinois Open 68d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// Source Licenses. See LICENSE.TXT for details. 78d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// 88d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//===----------------------------------------------------------------------===// 98d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 108d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// <chrono> 118d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 128d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#include <chrono> 138d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#include <type_traits> 148d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#include <cassert> 158d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 168d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clowint main() 178d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow{ 188d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#if _LIBCPP_STD_VER > 11 198d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow using namespace std::literals; 208d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 218d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow std::chrono::hours h = 4h; 228d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( h == std::chrono::hours(4)); 238d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow auto h2 = 4.0h; 248d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( h == h2 ); 258d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 268d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow std::chrono::minutes min = 36min; 278d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( min == std::chrono::minutes(36)); 288d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow auto min2 = 36.0min; 298d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( min == min2 ); 308d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 318d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow std::chrono::seconds s = 24s; 328d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( s == std::chrono::seconds(24)); 338d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow auto s2 = 24.0s; 348d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( s == s2 ); 358d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 368d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow std::chrono::milliseconds ms = 247ms; 378d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( ms == std::chrono::milliseconds(247)); 388d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow auto ms2 = 247.0ms; 398d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( ms == ms2 ); 408d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 418d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow std::chrono::microseconds us = 867us; 428d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( us == std::chrono::microseconds(867)); 438d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow auto us2 = 867.0us; 448d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( us == us2 ); 458d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow 468d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow std::chrono::nanoseconds ns = 645ns; 478d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( ns == std::chrono::nanoseconds(645)); 488d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow auto ns2 = 645.ns; 498d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow assert ( ns == ns2 ); 508d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#endif 518d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow} 52