Почему разработчики встроенных платформ постоянно пытаются удалить использование C++ exceptions
из своих SDKs
?
Например, 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++ exceptions
, и это на самом деле не могло быть. Что еще? Являются ли накладные расходы на использование исключений и разматывание на платформах ARM
действительно BIG, чтобы тратить много времени на такие обходные пути?
Возможно, что-то еще я не знаю?
Спасибо.