Скажем, у меня есть класс с методом, который возвращает shared_ptr.
Каковы возможные преимущества и недостатки возврата его по ссылке или по значению?
Две возможные подсказки:
-   Раннее уничтожение объекта. Если я возвращаю ссылку 
shared_ptrby (const), счетчик ссылок не увеличивается, поэтому я рискую удалить объект, когда он выходит из сферы действия в другом контексте (например, другой поток). Это верно? Что делать, если среда однопоточная, может ли эта ситуация также произойти? - Стоимость.. Постепенное значение, конечно, не является бесплатным. Стоит ли его избегать, когда это возможно?
 
Спасибо всем.