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 // template<class T> 12 // bool 13 // operator==(const complex<T>& lhs, const complex<T>& rhs); 14 15 #include <complex> 16 #include <cassert> 17 18 #include "test_macros.h" 19 20 template <class T> 21 void 22 test_constexpr() 23 { 24 #if TEST_STD_VER > 11 25 { 26 constexpr std::complex<T> lhs(1.5, 2.5); 27 constexpr std::complex<T> rhs(1.5, -2.5); 28 static_assert( !(lhs == rhs), ""); 29 } 30 { 31 constexpr std::complex<T> lhs(1.5, 2.5); 32 constexpr std::complex<T> rhs(1.5, 2.5); 33 static_assert(lhs == rhs, ""); 34 } 35 #endif 36 } 37 38 template <class T> 39 void 40 test() 41 { 42 { 43 std::complex<T> lhs(1.5, 2.5); 44 std::complex<T> rhs(1.5, -2.5); 45 assert( !(lhs == rhs)); 46 } 47 { 48 std::complex<T> lhs(1.5, 2.5); 49 std::complex<T> rhs(1.5, 2.5); 50 assert(lhs == rhs); 51 } 52 test_constexpr<T> (); 53 } 54 55 int main(int, char**) 56 { 57 test<float>(); 58 test<double>(); 59 test<long double>(); 60 // test_constexpr<int> (); 61 62 return 0; 63 } 64