Умные указатели (уникальные указатели) и ссылки

В моем коде у меня есть статический класс для хранения объектов. Чтобы делать вещи с непереносимостью (кастинг и т. Д.), Я сохраняю объекты на карте с unique_ptrs.

std::map<std::string, std::unique_ptr<DummyClass>>Map;

Хранимые объекты имеют некоторые переменные-члены, которые я хочу обновить в своем коде (через привязки переменных), поэтому я передаю ссылку на хранимые объекты, чтобы иметь возможность их изменять.

DummyClass& GetObject(std::string name)
{
return *Map[name];
}

Чтобы обновить членов, я храню их на другой карте, в другом классе, чтобы связать их со строкой (я получаю значения через TCP / IP), что-то вроде этого:

updater->registerVariable("bindingString", dummyObject.position.x);

registerVariable Метод также берет ссылку (на dummyObject.position.x) и сохраняет его на своей карте.

std::map<std::string, std::vector<float&>> floatBindings;

Но здесь возникает проблема: я не могу хранить ссылки на карте привязок.

У кого-нибудь есть хорошая идея, что я мог бы сделать вместо этого? Было бы shared_ptrпуть идти? Но дело в том, что я не хочу использовать shared_ptr s потому что владельцем должен быть только статический класс.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …