2

我有这个 C++11 代码:

using swallow = int[];

但是 MSVS2013 Preview barfs 就可以了:

错误 C2143:语法错误:缺少“;” 在'='之前

所以我尝试了

typedef int[] swallow;

但这让我:

警告 C4091: 'typedef' : 当没有声明变量时,'int' 左侧被忽略

所以我试着颠倒这些typedef东西,因为我不记得了(因此原因using太棒了):

typedef swallow int[];

并得到:

m:\development\source\ambrosia\libambrosia\Ambrosia/utility.h++(33) : 错误 C2144: 语法错误: 'int' 前面应该有 ';'

我已经对 MSVS2013 感到失望。我怎样才能这样写,以便 MS 编译器能够理解这个简单的代码?

4

1 回答 1

6

typdef是一个声明,并遵循与声明相同的语法:

extern int a[];

typedef int b[];

(注意这b是一个不完整的类型,它a只是声明的,没有定义的。)

于 2013-06-26T21:07:19.407 回答