gpt4 book ai didi

C++: "expected constant expression"

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:26:33 24 4
gpt4 key购买 nike

我在以下代码的最后一行收到“预期的常量表达式”错误:

int main() {
const float a = 0.5f;
const float b = 2.0f;

int array_of_ints[int(a*b + 1)];
}

我猜这是因为 int(a*b + 1) 在编译时是未知的,对吧?我的问题是:有没有什么方法可以对上面的示例进行编码,使其能够工作,并且 array_of_ints 的大小为 int(a*b + 1)

任何帮助或深入了解这里发生的事情将不胜感激:)

编辑:我意识到 vector 可以解决这个问题。但是,我希望数组的内容在堆栈上。

最佳答案

将这两个常量声明为 constexpr(遗憾的是仅自 C++11 起可用):

int main() {
constexpr float a = 0.5f;
constexpr float b = 2.0f;

int array_of_ints[int(a*b + 1)];
}

或者(对于 C+11 之前的 C++)您可以 use an std::vector .

关于C++: "expected constant expression",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21265750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com