blob: a9f356d4a40aeb78a5cb7a14293e2c46d2273335 [file] [log] [blame]
Howard Hinnant3e519522010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnant5b08a8a2010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnant3e519522010-05-11 19:42:16 +00004//
Howard Hinnant412dbeb2010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3e519522010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <complex>
11
12#include <complex>
13#include <cassert>
14
15template <class T>
16void
17test()
18{
19 std::complex<T> z;
20 T* a = (T*)&z;
21 assert(0 == z.real());
22 assert(0 == z.imag());
23 assert(a[0] == z.real());
24 assert(a[1] == z.imag());
25 a[0] = 5;
26 a[1] = 6;
27 assert(a[0] == z.real());
28 assert(a[1] == z.imag());
29}
30
31int main()
32{
33 test<float>();
34 test<double>();
35 test<long double>();
36}