polar operaciones numeros numero funciones con complejos c++ std complex-numbers

c++ - operaciones - Literal complejo ''i'' usado en argumento de función



numero polar en excel (1)

Debería recompilar con --std=c++14 (sin extensión GNU) para evitar el conflicto del sufijo i con la extensión gcc

La biblioteca ISO C ++ 14 también define el sufijo ''i'', por lo que el código C ++ 14 que incluye el encabezado <complex> no puede usar ''i'' para la extensión GNU. El sufijo ''j'' todavía tiene el significado GNU.

Parece que hay un problema, usar el literal i en C ++ con std::complex .

Considere el siguiente código:

std::complex<double> a = -1.0i * 42.0; std::complex<double> b = a + 1.0i;

La segunda línea no se compila con: error: no match for ''operator+'' (operand types are ''std::complex<double>'' and ''__complex__ double'')

Esto también aparece cuando se utiliza el literal complejo en las llamadas a funciones, por ejemplo,

std::exp<std::complex<double>>( 1.0i * 3.14159 );

¿Cómo es que el complejo literal 1.0i no se puede convertir a std::complex<double> ?

¿Tengo que construir explícitamente un std::complex con 1.0i ?