Вызов return в конструкторе
Подскажите, пожалуйста, разрешено ли вызывать return для завершения работы конструктора?
Ответы (1 шт):
Автор решения: Croessmah
→ Ссылка
В теле самого конструктора использовать return разрешено. Но, согласно правилам языка, в обработчике исключения function-try-block конструктора использование return запрещено:
If a return statement ([stmt.return]) appears in a handler of the function-try-block of a constructor, the program is ill-formed.
т.е.
struct some
{
some() try {
//Тело конструктора
return; //Ок
} catch (...) {
//Обработчик исключения function-try-block
return; //Ошибка!
}
};