C Złożone liczby w C ++?

Poniższy kod kompiluje się i działa dobrze w C (przynajmniej zgodnie z 'gcc -std = gnu99'), ale nie kompiluje się w C ++, dając "wiersz 5: błąd: nie można przekonwertować 'double' na 'doublezłożony„w inicjalizacji”. Czy ktoś wie dlaczego?

<code>#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;
}
</code>

Zdaję sobie sprawę, że istnieje inny sposób wykonywania złożonych liczb w C ++, ale muszę używać liczb złożonych C w C ++, ponieważ tak właśnie działa kod starszego typu. Dzięki, jeśli możesz pomóc!

questionAnswers(3)

yourAnswerToTheQuestion