Parse Issue 92:29: Array bound cannot be deduced from a default member initializer 应[Source: clangd for battery control]
时间: 2024-11-09 13:18:37 浏览: 8
Module parse failed: Unexpected token
5星 · 资源好评率100%
这个编译错误"Array bound cannot be deduced from a default member initializer"来自于ClangD编译器,针对电池控制部分(battery control),它表明在解析代码时遇到问题。这个错误通常是由于试图通过默认构造函数初始化数组成员,但是编译器无法自动推断出正确的数组边界,即不知道数组应该有多大才能填充所有默认值。
具体来说,可能是这样的情况:你在类的一个结构体或者成员变量中声明了一个数组,并尝试给每个元素设置默认值,但没有明确指定数组的具体大小,编译器就无法确定数组下标的上限。比如:
```cpp
class MyClass {
public:
std::array<int, /*未指定大小*/> myArray{}; // 这里会导致错误
};
```
解决这个问题,你需要显式地提供数组的大小:
```cpp
class MyClass {
public:
std::array<int, 10> myArray{}; // 明确指定数组大小为10
};
```
或者如果你希望根据某些条件动态确定大小,可以使用`std::vector`而不是`std::array`,因为`std::vector`会自动调整大小。
阅读全文