Создание исключения как const &

Возьмите следующий код;

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;
}

Я пытаюсь модифицировать корректность констант в моем проекте и случайно создал описанную выше ситуацию. В настоящее время в Dev Studio блок catch ДЕЙСТВИТЕЛЬНО перехватывает исключение, несмотря на то, что он выбрасывается как const &, но воспринимается как неконстантный &.

Вопрос - Должен ли он?: -)

7
задан Grimm The Opiner 19 January 2012 в 14:35
поделиться