У меня только что было странное поведение в версии g ++ для Windows, которую я получил со Strawberry Perl.Это позволило мне опустить оператор возврата.
У меня есть функция-член, которая возвращает структуру, состоящую из двух указателей, которая называется boundTag
:
struct boundTag Box::getBound(int side) {
struct boundTag retBoundTag;
retBoundTag.box = this;
switch (side)
{
// set retBoundTag.bound based on value of "side"
}
}
.выходной, и я обнаружил, что он не имеет оператора возврата.Я хотел вернуть retBoundTag
, но на самом деле забыл написать оператор возврата.Как только я добавил return retBoundTag;
, все было хорошо.
Но я проверил эту функцию и получил правильный boundTag
вывод из нее.Даже сейчас, когда я удаляю оператор return, g ++ компилирует его без предупреждения.WTF?Догадывается ли вернуть retBoundTag
?