【发布时间】:2015-06-24 14:10:53
【问题描述】:
在我的单元测试中,我收到以下编译器错误:
The error message indicates as follows:
'fatal error C1063: compiler limit: compiler stack overflow'
这是由一些生成的标头引起的,其中包含:
std::vector<unsigned char> GetTestData()
{
return { 0x1, 0x2, 0x3 }; // Very large 500kb of data
}
如何以这种方式使用向量而不会使 MSVC 崩溃?请注意,代码在 clang 和 gcc 中构建正常。
【问题讨论】:
-
500k 的整数字面量?
-
你为什么不通过将数据添加到函数内的向量来做理智的事情,从而只返回向量?
-
我猜它不应该在代码中。你不能将数据序列化到外部文件并在运行时以块的形式反序列化它吗?我认为这是最好的方法..
-
我将它添加到代码中以避免进行文件 I/O,它仅在单元测试中具有硬编码的示例数据
标签: c++ visual-c++