A *a = new A();
if (wrong) {
delete a;
return nullptr;
}
return a;
}
Вроде как это небезопасно. Возьмем юник:
unique_ptr<A> f() {
auto a = unique_ptr(new A())
if (wrong) {
throw exception();
}
return move(a);
}
Выглядит уже получше, но меня смущает мувание в ретерне. Хотя с другой стороны там же рекомендуют возвращать смарт понтеры для передачи овнершипста ресурса.
Где истина?
не надо там move
Обсуждают сегодня