具有三个参数的typedef是什么意思?

问题描述 投票:4回答:2

我正在尝试编译包含以下头文件的代码:

#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个参数感到困惑。

c++ macros g++ c-preprocessor
2个回答
7
投票

是,大多数typedef包含别名和基础类型,但是no


3
投票

complex不是C ++中的关键字,并且double complex不是type。您正在将C ++与另一种语言混在一起。

© www.soinside.com 2019 - 2024. All rights reserved.