Если b == a
, то явного возвращаемого значения нет.Ваш компилятор предупреждает вас об этом.
Вот почему вы должны всегда использовать окончательный } else {
блок.
Несмотря на добавление
if (a == b){
return a; // either would do
}
будет немедленным исправлением, такое изменение может вызвать проблемы в будущем, если вы когда-нибудь напишите версию min
, которая принимает типы double
, и один из входных данных - NaN
.Ни один компилятор, о котором я знаю, в настоящее время не предупреждает вас об этом.
Действительно, вы должны полностью отказаться от этой функции и использовать функцию из уважаемой библиотеки.По целому ряду технических причин канонический способ написания min
заключается в использовании
return (b < a) ? b : a;