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
?