std::complex<T>::operator+(binary), operator-(binary), operator*, operator/
Template:ddcl list begin <tr class="t-dcl ">
<td >complex<T> operator+( const complex<T>& lhs, const complex<T>& rhs);
<td > (1) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator+( const complex<T>& lhs, const T& rhs);
<td > (2) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator+( const T& lhs, const complex<T>& rhs);
<td > (3) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator-( const complex<T>& lhs, const complex<T>& rhs);
<td > (4) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator-( const complex<T>& lhs, const T& rhs);
<td > (5) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator-( const T& lhs, const complex<T>& rhs);
<td > (6) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator*( const complex<T>& lhs, const complex<T>& rhs);
<td > (7) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator*( const complex<T>& lhs, const T& rhs);
<td > (8) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator*( const T& lhs, const complex<T>& rhs);
<td > (9) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator/( const complex<T>& lhs, const complex<T>& rhs);
<td > (10) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator/( const complex<T>& lhs, const T& rhs);
<td > (11) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">
<td >complex<T> operator/( const T& lhs, const complex<T>& rhs);
<td > (12) </td> <td class="t-dcl-nopad"> </td> </tr> Template:ddcl list end
Implements the binary operators for complex arithmetic and for mixed complex/scalar arithmetic. Scalar arguments are treated as complex numbers with the real part equal to the argument and the imaginary part set to zero.
rhs
from lhs
lhs
by rhs
Contents |
Parameters
lhs, rhs | - | the arguments: either both complex numbers or one complex and one scalar of matching type (float, double, long double) |
Return value
Example
#include <iostream> #include <complex> int main() { std::complex<double> c2(2, 0); std::complex<double> ci(0, 1); std::cout << ci << " + " << c2 << " = " << ci+c2 << '\n' << ci << " * " << ci << " = " << ci*ci << '\n' << ci << " + " << c2 << " / " << ci << " = " << ci+c2/ci << '\n' << 1 << " / " << ci << " = " << 1./ci << '\n'; // std::cout << 1.f/ci; // compile error // std::cout << 1/ci; // compile error }
Output:
(0,1) + (2,0) = (2,1) (0,1) * (0,1) = (-1,0) (0,1) + (2,0) / (0,1) = (0,-1) 1 / (0,1) = (0,-1)