Использование контейнеров STL для boost :: interprocess :: managed_shared_memory
Рассмотрим следующую ситуацию:
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
(которая является картойint
а такжеHelper
) построен на shared_memory. В свою очередь хочуHelper
держать картуint
а такжеboost::interprocess::managed_shared_memory
.
Когда я пытаюсь использоватьstd::map
вHelper
Я получаю ошибки компилятора:
ошибка C2248: 'boost :: interprocess :: basic_managed_shared_memory :: basic_managed_shared_memory': не может получить доступ к закрытому члену, объявленному в классе 'boost :: interprocess :: basic_managed_shared_memory'
Как мне этого добиться?