【问题标题】:couldn't create array in class with constant size无法在具有恒定大小的类中创建数组
【发布时间】:2021-03-14 02:06:57
【问题描述】:

尝试在具有恒定大小的类中创建数组时出现 GCC 编译器错误。如果在 main 函数中做同样的事情就可以了。

const int n[] = { 4, 18 };
class C{
    int a[n[0]];//error: array bound is not an integer constant before ']' token
};

int main() {
    int b[n[0]];//it's ok here
}

【问题讨论】:

    标签: arrays class constants


    【解决方案1】:

    如果你改变了

    const int n[] = { 4, 18 };
    

    constexpr int n[] = { 4, 18 };
    

    它可以工作(刚刚用 gcc 7.4.0 测试过)。该数组被声明为在编译时进行评估,这是创建具有恒定大小的数组所必需的。

    【讨论】:

      猜你喜欢
      • 2019-01-16
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 2014-08-18
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      相关资源
      最近更新 更多