Использование контейнеров 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'

Как мне этого добиться?

Ответы на вопрос(1)

Ваш ответ на вопрос