Вобщем возник такой вопрос. Раньше (около двух лет назад), был написан такой код:
| Код | std::list<Button *>::iterator Dialog::GetButton(std::string caption) { for(std::list<Button *>::iterator i = buttons.begin(); i!=buttons.end(); ++i) if ((*i)->GetName() == caption) return i; return 0; }
|
Он компилился и работал без нареканий в Visual Studio C7.1\gcc (FreeBSD\Linux), но с тех пор утекло немало времени. Теперь же код абсолютно не хочет компилироваться в Linux, ругаясь на то что нельзя возвращать 0. В студии 8 тоже ругается, но есть маленький нюанс. При включённой опции /MT тоже ругается на это, но при включённой опции /MTd (тоже самое только в дебаг режиме), всё проходит без ошибок.
Подскажите как быть? |