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