Здравствуйте, igna, Вы писали:
I>VC++ 9.0 в Release вставляет проверку при обращении к элементу вектора:
I>С одной стороны не нашел как эту проверку отключить, с другой — стандарт ее не требует. С третьей стороны непонятно как такое поведение компилятора согласуется с философией языка не платить за то, что не используется.
нормально согласуется (сразу ассемблер)
Это у вас release или debug
из файла <vector>
const_reference operator[](size_type _Pos) const
{ // subscript nonmutable sequence
#if _HAS_ITERATOR_DEBUGGING
if (size() <= _Pos)
{
_DEBUG_ERROR("vector subscript out of range");
_SCL_SECURE_OUT_OF_RANGE;
}
#endif /* _HAS_ITERATOR_DEBUGGING */
_SCL_SECURE_VALIDATE_RANGE(_Pos < size());
return (*(_Myfirst + _Pos));
}