подскажите
напр для ф-и последний return вроде бы не нужен
int get_val()
{
if (some)
return 1;
else
throw some_ex();
return 0; // нужен ли данный оператор
}
Может чтобы ворнинг про то, что не все statements возвращают значения подавить ? (если он есть конечно) Убери и увидишь, будет ли ворнинг.
Здравствуйте, Аноним, Вы писали:
А>подскажите
А>напр для ф-и последний return вроде бы не нужен
А>
А>int get_val()
А>{
А> if (some)
А> return 1;
А> else
А> throw some_ex();
А> return 0; // нужен ли данный оператор
А>}
А>
Нет, не нужен. В MSVC++ 6.0, 7.0, 7.1 при Warning Level 4 даже выдается предупреждение.
Здравствуйте, VNG, Вы писали:
а почему не написать вот так?
А>>А>>int get_val()
А>>{
А>> if (!some) throw some_ex();
А>> return 1;
А>>}
А>>
Здравствуйте, Аноним, Вы писали:
А>подскажите
А>напр для ф-и последний return вроде бы не нужен
А>
А>int get_val()
А>{
А> if (some)
А> return 1;
А> else
А> throw some_ex();
А> return 0; // нужен ли данный оператор
А>}
А>
Теоретически не нужен, но на мой взгляд return в конце тела функции, просто "правило хорошего тона".
Не нужен он тут. Unreacheable code.
Здравствуйте, vadim77, Вы писали:
V>Теоретически не нужен, но на мой взгляд return в конце тела функции, просто "правило хорошего тона".
На мой взгляд достаточно просто переписать нормально:
if (!some)
throw some_ex();
return 1;
И короче, и нагляднее, и вопросов не возникает.