1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9// <chrono>
10
11// time_point
12
13// template <class Duration2>
14// time_point(const time_point<clock, Duration2>& t);
15
16#include <chrono>
17#include <cassert>
18
19#include "test_macros.h"
20
21int main(int, char**)
22{
23 typedef std::chrono::system_clock Clock;
24 typedef std::chrono::microseconds Duration1;
25 typedef std::chrono::milliseconds Duration2;
26 {
27 std::chrono::time_point<Clock, Duration2> t2(Duration2(3));
28 std::chrono::time_point<Clock, Duration1> t1 = t2;
29 assert(t1.time_since_epoch() == Duration1(3000));
30 }
31#if TEST_STD_VER > 11
32 {
33 constexpr std::chrono::time_point<Clock, Duration2> t2(Duration2(3));
34 constexpr std::chrono::time_point<Clock, Duration1> t1 = t2;
35 static_assert(t1.time_since_epoch() == Duration1(3000), "");
36 }
37#endif
38
39 return 0;
40}
41

source code of libcxx/test/std/time/time.point/time.point.cons/convert.pass.cpp