Следующий код прекрасно компилируется и работает на 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++, потому что именно так работает устаревший код, который мне дали. Спасибо, если вы можете помочь!