Рассмотрим следующую ситуацию:
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
) построен на общей_памяти. В свою очередь, я хочу, чтобы 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'
Как я могу этого добиться?
public
Helper
участников. - person Jepessen   schedule 13.10.2014