gpt4 book ai didi

c++ - typedef std::array 时出现编译错误

转载 作者:行者123 更新时间:2023-11-30 02:39:00 26 4
gpt4 key购买 nike

我使用 std::array (c++11) 定义了一个名为 inputTy 的类型,数组的维数声明为外部常量整数 d

namespace project {
namespace types{
extern const int d;
typedef std::array<double, d> inputTy;
}
}

为什么会出现这样的编译错误?

../../include/types.h:16:29: error: the value of ‘d’ is not usable in a constant expression
typedef std::array<double, d> inputTy;
^
../../include/types.h:15:18: note: ‘d’ was not initialized with a constant expression
extern const int d;
^

感谢您的帮助。

最佳答案

您不能使用 extern const int作为数组大小,因为编译器不知道来自其他编译单元的常量的大小。

更改您的设计以使用 std::vector或其他一些容器来解决问题或将常量放在 header 中并将其包含在 typede 之前芬。

关于c++ - typedef std::array 时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30216554/

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