operator==,!=(std::complex)
Min standard notice:
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
lhs, rhs: the arguments to compare: either both complex numbers or one complex and one scalar of matching type (float, double, long double)
# 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);
}