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// <complex>
10
11#include <complex>
12#include <cassert>
13
14#include "test_macros.h"
15
16template <class T>
17void
18test()
19{
20 std::complex<T> z;
21 T* a = (T*)&z;
22 assert(0 == z.real());
23 assert(0 == z.imag());
24 assert(a[0] == z.real());
25 assert(a[1] == z.imag());
26 a[0] = 5;
27 a[1] = 6;
28 assert(a[0] == z.real());
29 assert(a[1] == z.imag());
30}
31
32int main(int, char**)
33{
34 test<float>();
35 test<double>();
36 test<long double>();
37
38 return 0;
39}
40

source code of libcxx/test/std/numerics/complex.number/layout.pass.cpp