Здравствуйте, Tilir, Вы писали:
T>Дело в том, что throw попадает под return.
Неа. Warning пропадает, если возвращать значение (не ссылку).
T>Забавный кстати случай поскольку throw index имеет вообще-то тип void. И почему компилятор вообще разрешает return condition ? int : void -- загадка.
Ага! Вот из стандарта:
5.16.2 If either the second or the third operand has type (possibly cv-qualified) void, then the lvalue-to-rvalue, array-to-pointer, and function-to-pointer standard conversions are performed on the second and third operands, and one of the following shall hold:
— The second or the third operand (but not both) is a throw-expression; the result is of the type of the other and is an rvalue.
И зачем так сделали? Или это не относится к моему вопросу?
Если не поможет, будем действовать током... 600 Вольт (C)