d7d1cd
Привет всем. Недавно здесь упоминался компилятор Borland. Вспомнил случай, когда писал в C++Builder какую-то программу. Когда указанный компилятор в режиме Release компилирует ниже приведенный тестовый код, то он выдает предупреждение, что функция должна возвращать значение. Причем если убрать ключевое слово inline, то предупреждение пропадает. И если переключить компилятор на clang, то предупреждение тоже пропадает. Кто-то может объяснить почему так?
/*----- unit1.h -----*/
inline bool Foo();
/*----- unit1.cpp -----*/
bool TForm1::Foo()
{
bool b;
int i;
if (b) i = 1;
else if (!b) i = 2;
else return true;
return false;
}
Тут данное предупреждение выводиться не должно.
Должно бы выводиться другое, что переменная b не инициализирована, но это компилятор делать не обязан.