operator==,!=(std::complex)

Header: <complex>

Compares two complex numbers. Scalar arguments are treated as complex numbers with the real part equal to the argument and the imaginary part set to zero.

# Declarations

template< class T >
bool operator==( const complex<T>& lhs, const complex<T>& rhs );

(until C++14)

template< class T >
constexpr bool operator==( const complex<T>& lhs, const complex<T>& rhs );

(since C++14)

template< class T >
bool operator==( const complex<T>& lhs, const T& rhs );

(until C++14)

template< class T >
constexpr bool operator==( const complex<T>& lhs, const T& rhs );

(since C++14)

template< class T >
bool operator==( const T& lhs, const complex<T>& rhs );

(until C++14)

template< class T >
constexpr bool operator==( const T& lhs, const complex<T>& rhs );

(since C++14) (until C++20)

template< class T >
bool operator!=( const complex<T>& lhs, const complex<T>& rhs );

(until C++14)

template< class T >
constexpr bool operator!=( const complex<T>& lhs, const complex<T>& rhs );

(since C++14) (until C++20)

template< class T >
bool operator!=( const complex<T>& lhs, const T& rhs );

(until C++14)

template< class T >
constexpr bool operator!=( const complex<T>& lhs, const T& rhs );

(since C++14) (until C++20)

template< class T >
bool operator!=( const T& lhs, const complex<T>& rhs );

(until C++14)

template< class T >
constexpr bool operator!=( const T& lhs, const complex<T>& rhs );

(since C++14) (until C++20)

# Parameters

# Example

#include <complex>
 
int main()
{
    using std::operator""i; // or: using namespace std::complex_literals;
 
    static_assert(1.0i == 1.0i);
    static_assert(2.0i != 1.0i);
 
    constexpr std::complex z(1.0, 0.0);
    static_assert(z == 1.0);
    static_assert(1.0 == z);
    static_assert(2.0 != z);
    static_assert(z != 2.0);
}