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?