return?
Напр:
void bar() {}
void foo() { return bar(); }
Не является ли это UB или варнингом в каких-либо компиляторах?
ill-formed, то есть должно надежно диагностироваться компилятором http://eel.is/c++draft/stmt.return#2.sentence-4
Полагаю, его случай покрыт предшествующим предложением
А зачем там return?
зачем
На одну строчку короче =)
Нет, наоборот же как раз.
в примере речь вообще не шла про выражение типа void
Ну к примеру не надо докапываться)) Допустим у меня void foo() { if (cond) { setVisible(false); return; } // ... rest logic ... }
Учитывая, что ограничение накладывается на тип выражения-операнда - можно, полагаю, return (void)expr;, если очень хочется.
Выше же bar возвращает void Вообще, я ничего не вижу плохого в записи if (/* ... */) return bar(); вместо if (/* ... */) { bar(); return; }
@oficsu третье предложение, на которое вы ссылаетесь, про такой return
Обсуждают сегодня