似乎没有任何规则反对它,我得到的错误
std::vector< std::array<int,8> > output;
output.resize (8);
是C2036 'std::array<int,0x08> *': unknown size
这是没有意义的。内部的代码<vector>
正在推进内部end
指针,该指针也用于其他地方(扩展的计算大小也是如此)。a 的大小struct{int x[8];}
当然是“已知的”。
这里发生了什么?
嗯,因为它不仅仅是一个简单的错字或类似的错误,而且当其他人尝试它时似乎工作正常(并且其他人编写的示例对我有用!)我削减了源文件,直到除了有问题的语句之外什么都没有留下,它仍然失败。这是整个文件。预编译头文件已关闭。
//#include <SDKDDKVer.h>
#include <vector>
int main()
{
std::vector< std::array<int,8> > output;
output.resize (16);
}
我正在使用 x64 构建,发布构建。
弄清楚了:
这不是缺少#include for vector
,而是 for array
!它显然是在其他标题中前向声明的,但不完整。