В моих модульных тестах я получаю следующее сообщение об ошибке компилятора:Как избежать «предела компилятора: переполнение стека компилятора» с большими векторами?
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 целочисленного литерала? – user3528438
Почему вы не делаете разумную вещь, добавляя данные к вектору внутри функции и, таким образом, просто возвращаете вектор? – PaulMcKenzie
Я думаю, что это не должно быть в коде. не можете ли вы сериализовать данные во внешний файл и deseriealize его во время выполнения в кусках? Я думаю, что это лучший подход. –