Я хотел бы использовать указатели на ресурсы, хранящиеся в std :: map, как дескрипторы ресурса, но для этого std :: map не может переместить ни один из содержащихся в нем элементов из-за вставки / удаления из карты. Например:
class Resource { ... }
std::map<std::string, Resource> resources;
resources["one"] = Resource( ... );
Resource *handle = &resources["one"];
resources["two"] = Resource( ... );
handle->doSomething(); // Is handle guaranteed to still point to the same resource?
Я не могу найти какую-либо документацию, в которой указано, могут ли элементы быть перемещены или нет, std :: map может содержать не копируемый и неподвижный тип, однако я хочу убедиться, что это не то, что предназначено адаптация к такому типу.