Это прекрасно работает:
std::vector<int> v;
v.push_back(123);
но это выдает std :: length_error:
std::vector<uint32_t> v;// or vector<unsigned __int32>
v.push_back(123);
Кажется, это происходит при изменении размера, потому что
std::vector<uint32_t> v;
v.reserve(2);
вызывает отладочное утверждение "iterator not dereferencable"
.
Это происходит в Visual Studio 2008, но тот же код отлично работает на Mac и Linux. Кто-нибудь может предложить способ сузить поиск объяснения?
ОБНОВИТЬ:
Гнездо крыс статических и динамически связанных зависимостей в этом проекте сделало слишком трудоемким поиск нарушающей библиотеки. Я сдался и перестроил каждую зависимость от источника. Я потерял два дня своей жизни и до сих пор не знаю точно, где была проблема, но приложение работает! Спасибо за вашу помощь.