Комплексные числа C в C++?

Следующий код прекрасно компилируется и работает на C (по крайней мере, согласно 'gcc -std=gnu99'), но не компилируется под C++, выдавая "строка 5: ошибка: не удается преобразовать 'double' to 'double complex' in initialization'. Кто-нибудь знает, почему?

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

Я понимаю, что в C++ есть другой способ вычисления комплексных чисел, но мне приходится использовать комплексные числа C в C++, потому что именно так работает устаревший код, который мне дали. Спасибо, если вы можете помочь!

11
задан iloveponies 10 May 2012 в 19:54
поделиться