El siguiente código se compila y funciona bien en C (al menos según 'gcc -std = gnu99'), pero no se puede compilar en C++, dando "línea 5: error: no se puede convertir 'doble' en 'doble complejo 'en inicialización ". ¿Alguien sabe por qué?C ¿Números complejos en C++?
#include "/usr/include/complex.h"
#include <stdio.h>
int main(int argc, char * argv[]) {
double complex a = 3; // ERROR ON THIS LINE
printf("%lf\n", creal(a));
return 0;
}
que darse cuenta de que hay otra manera de hacer los números complejos en C++, pero tengo que usar números complejos C en C++, porque así es como el código de la herencia que me dieron hace las cosas. ¡Gracias si puedes ayudar!
Pero, en realidad, no _por qué_ Qué desea utilizar [ 'std :: compleja <>'] (http: // en.cppreference.com/w/cpp/numeric/complex)? – ildjarn
FTR, '-std = gnu99' no es realmente la bandera que desea para ** C **. Eso es "C con cosas que GNU pensó sería una buena idea, pero si lo es o no depende de la interpretación". '-std = c99' es deseable si quieres ** C **. –
ildjarn: Desafortunadamente, la biblioteca con la que estoy trabajando usa números complejos C99 en C++. No parece prudente comenzar un proyecto de esta manera, pero este es el código con el que tengo que trabajar. Martinho: es verdad Debería haber hecho la prueba con -std = c99 – iloveponies