Я пытаюсь создать файл shared_ptr только для чтения, который используется несколькими экземплярами. Ни один из экземпляров не должен иметь возможности изменять содержимое объекта указателя. Но экземпляры должны иметь возможность скопировать его в течение неизвестного периода.
a const std::shared_ptr<T>
не может быть легко сохранено в ссылке на атрибут, так как это должно быть определено конструктором. (и константная ссылка, по определению, постоянная)
Я сделал класс обертки
template<class T>
class const_shared_ptr
{
public:
const_shared_ptr(std::shared_ptr<T> ptr)
{
m_ptr = ptr;
}
const T* get() const
{
return m_ptr.get();
}
private:
std::shared_ptr<T> m_ptr;
}
этот код чистый? или есть более простой способ сделать? это выглядит довольно простой проблемой, но я не могу придумать никакого решения.