Накладные расходы на исключение C ++

Почему разработчики встроенных платформ постоянно пытаются удалить использование исключений C ++ из своих SDK ?

Например, Bada SDK предлагает следующий обходной путь для использования исключения, который выглядит исключительно некрасиво:

 result
 MyApp::InitTimer()
 {
    result r = E_SUCCESS;

    _pTimer = new Timer;

    r = _pTimer->Construct(*this);
    if (IsFailed(r))
    {
        goto CATCH;
    }

    _pTimer->Start(1000);
    if (IsFailed(r))
    {
        goto CATCH;
    }

    return r;
 CATCH:
     return r;
 }

Каковы причины такого поведения?

Насколько далеко насколько я знаю, компиляторы ARM полностью поддерживают исключения C ++ , и на самом деле это не могло быть проблемой. Что еще? Неужели накладные расходы на использование исключений и раскручивание на платформах ARM действительно такие БОЛЬШИЕ , чтобы тратить много времени на такие обходные пути?

Может быть, что-то еще я не знаю? 12190] Спасибо.

32
задан Yippie-Ki-Yay 13 July 2011 в 23:51
поделиться