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 
10 // <chrono>
11 
12 // time_point
13 
14 // template <class Duration2>
15 //   time_point(const time_point<clock, Duration2>& t);
16 
17 #include <chrono>
18 #include <cassert>
19 
main()20 int main()
21 {
22     typedef std::chrono::system_clock Clock;
23     typedef std::chrono::microseconds Duration1;
24     typedef std::chrono::milliseconds Duration2;
25     {
26     std::chrono::time_point<Clock, Duration2> t2(Duration2(3));
27     std::chrono::time_point<Clock, Duration1> t1 = t2;
28     assert(t1.time_since_epoch() == Duration1(3000));
29     }
30 #if _LIBCPP_STD_VER > 11
31     {
32     constexpr std::chrono::time_point<Clock, Duration2> t2(Duration2(3));
33     constexpr std::chrono::time_point<Clock, Duration1> t1 = t2;
34     static_assert(t1.time_since_epoch() == Duration1(3000), "");
35     }
36 #endif
37 }
38