У меня есть функция, которая должна вернуть указатель на объект класса myClass
. Для этого я использую std::unique_ptr
.
Если функция завершается успешно, она возвращает указатель на объект с данными. Если он терпит неудачу, он должен вернуть null
.
Это мой скелет кода:
std::unique_ptr<myClass> getData()
{
if (dataExists)
... create a new myClass object, populate and return it ...
// No data found
return std::unique_ptr<myClass> (null); <--- Possible ?
}
on main
:
main()
{
std::unique_ptr<myClass> returnedData;
returnedData = getData();
if (returnedData != null) <-- How to test for null ?
{
cout << "No data returned." << endl;
return 0;
}
// Process data
}
Итак, вот мои вопросы:
a) Возможно ли (возвращение объекта или null
) с помощью std::unique_ptr
?
b) Если возможно, как реализовать?
c) Если это невозможно, какие существуют альтернативы?
Спасибо за помощь.