Возьмите следующий код:
void DoThrow( const std::exception& e )
{
throw e;
}
int main( int nArgs, char* args[] )
{
std::exception e;
try
{
DoThrow( e );
}
catch( std::exception& e )
{
// const exception ref is caught
}
return 0;
}
Я пытаюсь установить правильность const в моем проекте и непреднамеренно создал вышеуказанную ситуацию.В Dev Studio блок catch ДЕЙСТВИТЕЛЬНО перехватывает исключение, несмотря на то, что он вызывается как const, но перехватывается как неконстантный.: -)