brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 4fe46bb 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 T& lhs, const complex<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 T lhs(-2.5);28    constexpr std::complex<T> rhs(1.5,  2.5);29    static_assert(!(lhs == rhs), "");30    }31    {32    constexpr T lhs(-2.5);33    constexpr std::complex<T> rhs(1.5,  0);34    static_assert(!(lhs == rhs), "");35    }36    {37    constexpr T lhs(1.5);38    constexpr std::complex<T> rhs(1.5, 2.5);39    static_assert(!(lhs == rhs), "");40    }41    {42    constexpr T lhs(1.5);43    constexpr std::complex<T> rhs(1.5, 0);44    static_assert(lhs == rhs, "");45    }46#endif47}48 49template <class T>50TEST_CONSTEXPR_CXX2051bool52test()53{54    {55    T lhs(-2.5);56    std::complex<T> rhs(1.5,  2.5);57    assert(!(lhs == rhs));58    }59    {60    T lhs(-2.5);61    std::complex<T> rhs(1.5,  0);62    assert(!(lhs == rhs));63    }64    {65    T lhs(1.5);66    std::complex<T> rhs(1.5, 2.5);67    assert(!(lhs == rhs));68    }69    {70    T lhs(1.5);71    std::complex<T> rhs(1.5, 0);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