operator==,!=(std::complex)
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Numerics library 
  
 
 
 
 
 
 
 Mathematical special functions (C++17)
 Mathematical constants (C++20)
 Basic linear algebra algorithms (C++26)
 Data-parallel types (SIMD) (C++26)
 Floating-point environment (C++11)
 Bit manipulation (C++20)
 Saturation arithmetic (C++26)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
std::complex 
  
 
 
 
 
 
 
operator==operator!=
(until C++20)  
(C++26)
  (C++26)
(C++26)
Defined in header 
 
 
<complex> 
  
 (1)
 
template< class T >
bool operator==( const complex<T>& lhs, const complex<T>& rhs );
 
 (until C++14)
bool operator==( const complex<T>& lhs, const complex<T>& rhs );
template< class T >
constexpr bool operator==( const complex<T>& lhs, const complex<T>& rhs );
 
 (since C++14) 
constexpr bool operator==( const complex<T>& lhs, const complex<T>& rhs );
 
 (2)
 
template< class T >
bool operator==( const complex<T>& lhs, const T& rhs );
 
 (until C++14)
bool operator==( const complex<T>& lhs, const T& rhs );
template< class T >
constexpr bool operator==( const complex<T>& lhs, const T& rhs );
 
 (since C++14) 
constexpr bool operator==( const complex<T>& lhs, const T& rhs );
 
 (3)
 
template< class T >
bool operator==( const T& lhs, const complex<T>& rhs );
 
 (until C++14)
bool operator==( const T& lhs, const complex<T>& rhs );
template< class T >
constexpr bool operator==( const T& lhs, const complex<T>& rhs );
 
 (since C++14) constexpr bool operator==( const T& lhs, const complex<T>& rhs );
(until C++20)
 
 (4)
 
template< class T >
bool operator!=( const complex<T>& lhs, const complex<T>& rhs );
 
 (until C++14)
bool operator!=( const complex<T>& lhs, const complex<T>& rhs );
template< class T >
constexpr bool operator!=( const complex<T>& lhs, const complex<T>& rhs );
 
 (since C++14) constexpr bool operator!=( const complex<T>& lhs, const complex<T>& rhs );
(until C++20)
 
 (5)
 
template< class T >
bool operator!=( const complex<T>& lhs, const T& rhs );
 
 (until C++14)
bool operator!=( const complex<T>& lhs, const T& rhs );
template< class T >
constexpr bool operator!=( const complex<T>& lhs, const T& rhs );
 
 (since C++14) constexpr bool operator!=( const complex<T>& lhs, const T& rhs );
(until C++20)
 
 (6)
 
template< class T >
bool operator!=( const T& lhs, const complex<T>& rhs );
 
 (until C++14)
bool operator!=( const T& lhs, const complex<T>& rhs );
template< class T >
constexpr bool operator!=( const T& lhs, const complex<T>& rhs );
 
 (since C++14) constexpr bool operator!=( const T& lhs, const complex<T>& rhs );
(until C++20)
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.
1-3) Compares lhs and rhs for equality.
4-6) Compares lhs and rhs for inequality.
The != operator is synthesized from operator==.
[edit] Parameters
 lhs, rhs
 -
 the arguments to compare: either both complex numbers or one complex and one scalar of matching type (float, double, long double)
[edit] Return value
1-3) true if respective parts of lhs are equal to rhs, false otherwise.
4-6) !(lhs == rhs)
[edit] Example
Run this code
#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); }