Re[2]: Проблема работы с объектами через unique_ptr (const-квалификаторы)
От: _hum_ Беларусь  
Дата: 16.04.16 12:22
Оценка:
Здравствуйте, VTT, Вы писали:

__>> int get_foo(const std::unique_ptr<const int>& v)const;


VTT>На редкость безобразная конструкция. Голые указатели и передача ссылок на неизменяемые умные указатели — это как раз тот самый "smelly code".

VTT>В такой ситуации лучше передавать int const &.

возможно, вы правы в плане, что передача неизменяемых объектов должна идти не по указателю, а по ссылке на сам объект, но есть же случаи, когда это неудобно, например
TNode*        next(TNode* p){ return p->m_pNext;}
const TNode* next(const TNode* p){ return p->m_pNext;}


VTT>Если же передаваемое значение потенциально может быть еще не создано (т.е. в unique_ptr хранится nullptr), то тогда имеет смысл передавать optional_reference< int const >


ага, городить optional_reference, вовлекая сторонние библиотеки и усложняя семантику, это, конечно, красиво.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.