В отличие от Java, в C / C ++ разрешено :
int* foo ()
{
if(x)
return p;
// what if control reaches here
}
Это часто вызывает сбои и затрудняет отладку. Почему стандартный не требует окончательного возврата для не- void
функций? (Компиляторы генерируют ошибку из-за неправильного возвращаемого значения
)
Есть ли какой-либо флаг в gcc / msvc для обеспечения этого? (что-то вроде -Wunused-result
)