[问题] 用const静态阵列作为引数宣告静态阵列

楼主: viker (太太)   2014-04-14 15:01:50
开发平台(Platform): VC++ 2012
问题(Question):
宣告静态阵列的引数必须要用常数,我这样做应该可以编译
但实际上却出现Error
error C2057: 必须是常数运算式
error C2466: 无法配置常数大小为 0 的阵列,常数必须为大于 0 的整数
error C2087: 'test' : 遗漏注标
error C2133: 'test' : 未知的大小
程式码(Code):
int main()
{
const int a[3] = {2,3,4};
double test[a[0]][a[1]][a[2]];
return 0;
}
补充说明(Supplement):
若将分成三行宣告,则编译没问题
const int a0 = 2;
const int a1 = 3;
const int a2 = 4;
作者: Feis (永远睡不着 @@)   2014-04-14 19:20:00
需要新版的 constexpr 或者只好用建议不要用的 Macro / enum你还是用 vector 吧...
作者: TeaEEE (爱不趴 不爱趴)   2014-04-15 10:04:00
const int a[] = { 1, 2, 3};

Links booklink

Contact Us: admin [ a t ] ucptt.com