brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 151a356 Raw
93 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9// <complex>10 11// template<class T>12//   bool13//   operator==(const complex<T>& lhs, const T& rhs);14 15#include <complex>16#include <cassert>17 18#include "test_macros.h"19 20template <class T>21TEST_CONSTEXPR_CXX2022void23test_constexpr()24{25#if TEST_STD_VER > 1126    {27    constexpr std::complex<T> lhs(1.5, 2.5);28    constexpr T rhs(-2.5);29    static_assert(!(lhs == rhs), "");30    }31    {32    constexpr std::complex<T> lhs(1.5, 0);33    constexpr T rhs(-2.5);34    static_assert(!(lhs == rhs), "");35    }36    {37    constexpr std::complex<T> lhs(1.5, 2.5);38    constexpr T rhs(1.5);39    static_assert(!(lhs == rhs), "");40    }41    {42    constexpr std::complex<T> lhs(1.5, 0);43    constexpr T rhs(1.5);44    static_assert( (lhs == rhs), "");45    }46#endif47}48 49template <class T>50TEST_CONSTEXPR_CXX2051bool52test()53{54    {55    std::complex<T> lhs(1.5,  2.5);56    T rhs(-2.5);57    assert(!(lhs == rhs));58    }59    {60    std::complex<T> lhs(1.5, 0);61    T rhs(-2.5);62    assert(!(lhs == rhs));63    }64    {65    std::complex<T> lhs(1.5, 2.5);66    T rhs(1.5);67    assert(!(lhs == rhs));68    }69    {70    std::complex<T> lhs(1.5, 0);71    T rhs(1.5);72    assert( (lhs == rhs));73    }74 75    test_constexpr<T> ();76    return true;77}78 79int main(int, char**)80{81    test<float>();82    test<double>();83    test<long double>();84 85#if TEST_STD_VER > 1786    static_assert(test<float>());87    static_assert(test<double>());88    static_assert(test<long double>());89#endif90 91  return 0;92}93