Home | History | Annotate | Download | only in time
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
     10 
     11 // <chrono>
     12 
     13 // using days = duration<signed integer type of at least 25 bits, ratio_multiply<ratio<24>, hours::period>>;
     14 
     15 #include <chrono>
     16 #include <type_traits>
     17 #include <limits>
     18 
     19 int main()
     20 {
     21     typedef std::chrono::days D;
     22     typedef D::rep Rep;
     23     typedef D::period Period;
     24     static_assert(std::is_signed<Rep>::value, "");
     25     static_assert(std::is_integral<Rep>::value, "");
     26     static_assert(std::numeric_limits<Rep>::digits >= 25, "");
     27     static_assert(std::is_same_v<Period, std::ratio_multiply<std::ratio<24>, std::chrono::hours::period>>, "");
     28 }
     29