«Не все пути управления возвращают значение» при вызове функции, которая бросаетC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 «Не все пути управления возвращают значение» при вызове функции, которая бросает

Сообщение Anonymous »

Пример: < /p>

Код: Выделить всё

int foo() { throw 0; }
int bar() { foo(); }
< /code>
foo
здесь не получает предупреждение, а BAR получает ошибку «Должен вернуть значение». Более того, Bar будет иметь некоторые возвратные операторы и получить предупреждение «Не все пути управления возвращают значение».
Почему не косвенное бросок , не распознанный как правильный способ выйти из функции? Как я могу обойти его, в идеале, изменяя foo , а не bar ?
Фактический пример, который я имею в виду>

Подробнее здесь: https://stackoverflow.com/questions/795 ... ich-throws
Ответить

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

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

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

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

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