Der folgende Code kompiliert und läuft gut in C (zumindest nach 'gcc -std = gnu99'), aber es kompiliert nicht unter C++, was "Zeile 5: Fehler: kann nicht konvertieren Doppel 'zu' Doppel Komplex 'in Initialisierung ". Weiß jemand warum?C Komplexe Zahlen in 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;
}
Ich weiß, es ist eine andere Art und Weise komplexe Zahlen in C++ zu tun, aber ich habe C komplexe Zahlen in C++ zu verwenden, weil das ist, wie die Legacy-Code mir gegeben wurde, tut Dinge. Danke, wenn du helfen kannst!
Aber wirklich, _why_ nicht wollen Sie [ 'std :: Komplex <>'] (http: // verwenden en.cppreference.com/w/cpp/numeric/complex)? – ildjarn
FTR, '-std = gnu99' ist nicht wirklich die Flagge, die du für ** C ** willst. Das ist "C mit Sachen, die GNU dachte, wäre eine gute Idee, aber ob es ist oder nicht, ist für Interpretation". '-std = c99' ist wünschenswert, wenn Sie ** C ** wollen. –
ildjarn: Leider verwendet die Bibliothek, mit der ich arbeite, C99 komplexe Zahlen in C++. Es scheint nicht ratsam, ein Projekt auf diese Weise zu starten, aber das ist der Code, mit dem ich arbeiten muss. Martinho: Das stimmt. Ich hätte den Test mit -std = c99 – iloveponies