Здравствуйте, Calavera, Вы писали:
C>Вот:
C>C>/*855*/if(0<_Linkcnt)
C>/*856*/ this->_Alptr.destroy(&_Next(_Pnode));
C>/*857*/this->_Alnod.deallocate(_Pnode, 1);
C>/*858*/_RERAISE;
C>
C>и, что это даст — не перелапачивать ведб весь "list"
Ха ! А я знаю, в чём прикол !
Я же просил привести строки в контексте. К счастью, в VC7.1 этот код сохранился, и выглядит он так :
_TRY_BEGIN
что-то делается...
_CATCH_ALL
if (0 < _Linkcnt)
this->_Alptr.destroy(&_Nextnode(_Pnode));
this->_Alnod.deallocate(_Pnode, 1);
_RERAISE;
_CATCH_END
Как и следовало ожидать, _CATCH_ALL переходит в } catch (...) { если в проекте разрешены исключения, и в } if (0) { если нет. Теперь понятно, где нашёлся unreachable code, и понятно, что надо сделать — разрешить обработку исключений.