Namespaces
Variants

std::complex<T>:: complex

From cppreference.net
Plantilla principal ( std:: complex < T > )
(1)
complex ( const T & re = T ( ) , const T & im = T ( ) ) ;
(hasta C++14)
constexpr complex ( const T & re = T ( ) , const T & im = T ( ) ) ;
(desde C++14)
(2)
complex ( const complex & other ) ;
(hasta C++14)
constexpr complex ( const complex & other ) ;
(desde C++14)
(hasta C++23)
constexpr complex ( const complex & other ) = default ;
(desde C++23)
(3)
template < class X >
complex ( const complex < X > & other ) ;
(hasta C++14)
template < class X >
constexpr complex ( const complex < X > & other ) ;
(desde C++14)
(hasta C++23)
template < class X >
constexpr explicit ( /* ver más abajo */ ) complex ( const complex < X > & other ) ;
(desde C++23)
Especialización explícita estándar std:: complex < float > (hasta C++23)
(1)
complex ( float re = 0.0f , float im = 0.0f ) ;
(hasta C++11)
constexpr complex ( float re = 0.0f , float im = 0.0f ) ;
(desde C++11)
constexpr complex ( const complex < float > & other ) = default ;
(2) (desde C++20)
(3)
explicit complex ( const complex < double > & other ) ;
explicit complex ( const complex < long double > & other ) ;
(hasta C++11)
constexpr explicit complex ( const complex < double > & other ) ;
constexpr explicit complex ( const complex < long double > & other ) ;
(desde C++11)
Especialización explícita estándar std:: complex < double > (hasta C++23)
(1)
complex ( double re = 0.0 , double im = 0.0 ) ;
(hasta C++11)
constexpr complex ( double re = 0.0 , double im = 0.0 ) ;
(desde C++11)
constexpr complex ( const complex < double > & other ) = default ;
(2) (desde C++20)
(3)
complex ( const complex < float > & other ) ;
explicit complex ( const complex < long double > & other ) ;
(hasta C++11)
constexpr complex ( const complex < float > & other ) ;
constexpr explicit complex ( const complex < long double > & other ) ;
(desde C++11)
Especialización explícita estándar std:: complex < long double > (hasta C++23)
(1)
complex ( long double re = 0.0L, long double im = 0.0L ) ;
(hasta C++11)
constexpr complex ( long double re = 0.0L, long double im = 0.0L ) ;
(desde C++11)
constexpr complex ( const complex < long double > & other ) = default ;
(2) (desde C++20)
(3)
complex ( const complex < float > & other ) ;
complex ( const complex < double > & other ) ;
(hasta C++11)
constexpr complex ( const complex < float > & other ) ;
constexpr complex ( const complex < double > & other ) ;
(desde C++11)

Construye el objeto std:: complex . Las especializaciones explícitas estándar ( std:: complex < float > , std:: complex < double > y std:: complex < long double > ) tienen declaraciones de constructor diferentes de la plantilla principal. (hasta C++23)

1) Construye el número complejo a partir de la parte real re y la parte imaginaria im .
2) Constructor de copia. Construye el objeto con la copia de los contenidos de other . Los constructores de copia se declaran implícitamente en las especializaciones explícitas estándar. (hasta C++20)
3) Constructor de conversión . Construye el objeto a partir de un número complejo de un tipo diferente.

La plantilla principal proporciona una plantilla de constructor de conversión, mientras que cada especialización explícita estándar proporciona dos constructores no plantilla para las otras dos especializaciones explícitas estándar.

Los constructores no plantilla son constructores de conversión (es decir, no explícitos) si y solo si las conversiones de las partes real e imaginaria no son de estrechamiento.

(hasta C++23)

Para la plantilla principal, la expresión dentro de explicit se evalúa como false si y solo si el rango de conversión de punto flotante de T es mayor o igual que el rango de conversión de punto flotante de X .

(desde C++23)

Parámetros

re - la parte real
im - la parte imaginaria
other - otro número complejo a utilizar como fuente

Notas

Desde C++23, el constructor de copia debe ser trivial para satisfacer el requisito TriviallyCopyable , pero las implementaciones generalmente lo hacen trivial en todos los modos.

Véase también

asigna los contenidos
(función miembro pública)
un std::complex literal que representa un número puramente imaginario
(función)