Ошибка компиляции VS 1256 (целочисленное переполнение во внутренних вычислениях...) во время наследования
Моя проблема возникает во время компиляции Irrlicht3D Engine в VS 2008.
1> Ошибка 1256: целочисленное переполнение во внутренних вычислениях из-за размера или сложности "irr::IReferenceCounting"
В настоящее время я объединяю очень старый Softwaredriver, который я написал, с остальной частью двигателя, который намного новее. Основная проблема заключается в том, что я пытался решить проблемы абстрактного наследования. Но теперь я получаю эту ошибку, и она единственная. "irr::IReferenceCounting" является одним из базовых классов, используемых другими классами, унаследованными от. Что это значит? Я знаю, что целочисленное переполнение может быть нормальным переполнением, но почему это показано во время компиляции?
Любая помощь приветствуется!
-db
1 ответ
Сам компилятор должен выполнить некоторую целочисленную математику. Например, расчет sizeof(irr::IReferenceCounted)
скорее всего, когда irr::IReferenceCounted
используется в качестве базового класса. Это может привести к переполнению, если тип больше 4 ГБ.