1320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow//===----------------------------------------------------------------------===//
2320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow//
3320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow//                     The LLVM Compiler Infrastructure
4320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow//
5320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow// This file is dual licensed under the MIT and the University of Illinois Open
6320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow// Source Licenses. See LICENSE.TXT for details.
7320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow//
8320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow//===----------------------------------------------------------------------===//
9320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow
10320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow// <chrono>
11320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow
12320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow#include <complex>
13320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow#include <type_traits>
14320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow#include <cassert>
15320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow
16320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clowint main()
17320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow{
18320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow#if _LIBCPP_STD_VER > 11
19320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    using namespace std;
20320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow
21320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    {
22320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    std::complex<long double> c1 = 3.0il;
23320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    assert ( c1 == std::complex<long double>(0, 3.0));
24320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    auto c2 = 3il;
25320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    assert ( c1 == c2 );
26320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    }
27320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow
28320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    {
29320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    std::complex<double> c1 = 3.0i;
30320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    assert ( c1 == std::complex<double>(0, 3.0));
31320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    auto c2 = 3i;
32320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    assert ( c1 == c2 );
33320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    }
34320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow
35320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    {
36320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    std::complex<float> c1 = 3.0if;
37320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    assert ( c1 == std::complex<float>(0, 3.0));
38320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    auto c2 = 3if;
39320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    assert ( c1 == c2 );
40320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow    }
41320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow
42320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow#endif
43320c80fecf6b50cbc89840189b90a972baf4d6fcMarshall Clow}
44