Uso de contenedores STL para boost :: interprocess :: managed_shared_memory
Considere la siguiente situación:
class Helper
{
public:
// Getters and setters are present!
private:
int i;
std::map<int, boost::interprocess::managed_shared_memory> shm;
}
int main()
{
boost::interprocess::managed_shared_memory shmInfo(boost::interprocess::open_or_create, "Test", 1024);
boost::interprocess::map<int, Helper> myMap = shmInfo.construct< boost::interprocess::map<int, Helper> >("Memory");
}
myMap
(que es un mapa deint
yHelper
) se construye en la memoria compartida. A su vez, quieroHelper
para sostener un mapa deint
yboost::interprocess::managed_shared_memory
.
Cuando estoy tratando de usarstd::map
enHelper
, Recibo errores del compilador:
error C2248: 'boost :: interprocess :: basic_managed_shared_memory :: basic_managed_shared_memory': no se puede acceder al miembro privado declarado en la clase 'boost :: interprocess :: basic_managed_shared_memory'
¿Cómo puedo conseguir esto?