Verwendung von AWL-Containern für boost :: interprocess :: managed_shared_memory

Betrachten Sie die folgende Situation:

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 (das ist eine Karte vonint undHelper) ist auf dem shared_memory aufgebaut. Im Gegenzug möchte ichHelper um eine Karte von @ zu haltint undboost::interprocess::managed_shared_memory.

Wenn ich versuche, @ zu verwendstd::map imHelper, Ich erhalte Compiler-Fehler:

error C2248: 'boost :: interprocess :: basic_managed_shared_memory :: basic_managed_shared_memory': Kein Zugriff auf das in der Klasse 'boost :: interprocess :: basic_managed_shared_memory' deklarierte private Mitglied

Wie kann ich das erreichen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage