Тестирование возвращаемого значения и возвратаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Тестирование возвращаемого значения и возврата

Сообщение Anonymous »


Может быть, это глупый вопрос, но я работаю над тем, существует ли краткий способ проверить возвращаемый функцией функцию результат и, если он не соответствует условию, вернуть это значение (т. е. передать его дальше).

Что касается возможного вопроса прямо сейчас: да, то, что я ищу, похоже на то, что предлагают исключения. Однако для разработчика встраиваемых систем накладные расходы, связанные с исключениями (к сожалению), слишком высоки.

Например,

Статус класса перечисления { ХОРОШО, ОШИБКА1, ОШИБКА2, ОШИБКА3 }; Статус foo1(); Статус foo2(); Статус foo3(); Статус бар() { Результат статуса; результат = foo1(); if (result != Status::OKAY) вернуть результат; результат = foo2(); if (result != Status::OKAY) вернуть результат; результат = foo3(); if (result != Status::OKAY) вернуть результат; вернуть Статус::ОКЕЙ; } Если бы я просто использовал логическое значение в качестве возвращаемого значения, сокращением было бы следующее:

bool bar() { if (!foo1()) вернет false; if (!foo2()) вернет false; if (!foo3()) возвращает false; вернуть истину; } Подобное предложение if с побочным эффектом считается запахом кода, но мне оно кажется более читабельным и кратким, чем назначение локальных переменных и тесты.

Есть ли сокращенный способ добиться такой же читабельности, как во втором примере, но с тем же эффектом, что и в первом примере?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»