Пропуск возврата в C ++
У меня просто странное поведение в версии 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"
}
}
Эта функция выдала мне несколько неверных результатов, и я обнаружил, что в ней нет оператора return. Я хотел вернутьсяretBoundTag
но забыл написать заявление о возврате. Как только я добавилreturn retBoundTag;
все было отлично.
Но я проверил эту функцию и получил правильныйboundTag
выход из него. Даже сейчас, когда я удаляю оператор return, g ++ компилирует его без предупреждения. WTF? Это угадать, чтобы вернутьсяretBoundTag
?