Пишу рендер, есть класс, который должен хранить шейдеры, что то вроде менеджера шейдеров. Эти шейдеры хранятся как
std::map<std::string, std::shared_ptr<BaseShader>> cache;
BaseShader - это абстрактный класс(имеются виртуальные методы).
Другие классы, хотят владеть шейдерами, и запрашивают их соответственно по имени. То есть у них у каждого хранится копия умного указателя. После изменения нужно шейдеры перезагрузить с диска. Соответственно, делается
new и по имени записывается в cache, проблема в том, что клиенты не видят этого изменения. Как сделать так, чтобы не делался
reset для умного указателя, а по тому же самому адресу, что он хранит, скопировался обновленный объект?