我正在尝试编译包含以下头文件的代码:
#ifndef FFT_H
#define FFT_H
#include<cmath>
#include<complex.h>
#include<vector>
#define Vec(a, b) std::vector<__typeof(*(a))> ((a), (a)+(b))
typedef double complex complex_t; // this is my trouble line!
typedef double real_t;
#endif
我的编译器在typedef double complex complex_t;
上跳闸
这对我来说很有意义,因为大多数typedef仅包含两个参数:类型和别名。
此发布的代码来自reputable source,因此我认为自己做错了什么。但是,我对为什么typedef会使用3个参数感到困惑。
是,大多数typedef包含别名和基础类型,但是no
complex
不是C ++中的关键字,并且double complex
不是type。您正在将C ++与另一种语言混在一起。