我很想尽量减少对第三方头文件的依赖(kiss_fft.h)。在头文件中定义了一个匿名结构,我真的很想在我的代码中交替使用我自己的别名(或某些模糊的等价物)。匿名c类型的C++别名
外部定义,我不该改变:
typedef struct {
float r;
float i;
} kiss_fft_cpx;
我第一次尝试:
typedef kiss_fft_cpx FTBuffer;
// yields error: 'kiss_fft_cpx' does not name a type
我的第二次尝试:
struct FTBuffer : public kiss_fft_cpx {};
// yields error: expected class-name before '{' token
我想我的问题是,kiss_fft_cpx是一个变量而不是一个类型,但也许有一个工具你知道...吗?
我在这里搜索了解决方案,并在更广泛的网络上,但没有什么是跳出来的。我希望这只是我的知识上的一个缺口,但接受可能没有可取的解决方案。提前乐观感谢!
您是否正在使用支持C++ 11功能(如“decltype”)的编译器? – 2012-08-16 14:28:08
'kiss_fft_cpx'是一个类型名称,应该可以用作基类和'typedef's。 [Example。](http://liveworkspace.org/code/04fe7d6c236d4f9e59029b8440048885) – Xeo 2012-08-16 14:28:46
在VC++ 2010中无问题工作 – 2012-08-16 14:30:13