Как принимать std::unique_ptr в функцию?
От: Basil2 Россия https://starostin.msk.ru
Дата: 02.12.17 22:51
Оценка:
Допустим, у меня есть иерархия классов IWidget. Классы создаются фабрикой:
unique_ptr<IWidget> CreateWidget(...);
и далее хранятся или как сам unique_ptr, или как vector<unique_ptr>.

И есть у меня свободные функции, который этот виджет принимают. Сейчас это так:
void DisplayWidget(const IWidget&);
void ChangeWidget(IWidget&);
Но, естественно, для передачи в них моих виджетов, указатель все время приходится разыменовывать.

Вопрос:

Имеет ли смысл делать сигнатуру функций как-то иначе?
Если да, то как?


P.S. Я частично прочитал Мейерса "Effective Modern C++": там поется ода unique_ptr вообще и его применению в фабриках в частности, но вот что делать дальше я не нашел (в разделе про умные указатели).
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Отредактировано 02.12.2017 22:53 Basil2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.