Можно ли хранить полиморфный класс в разделяемой памяти?
Предположим, у меня есть классBase
а такжеDerived : public Base
, Я построил сегмент разделяемой памяти, используя библиотеку boost :: interprocess. Возможно ли иметь код, подобный этому:
Base* b = new Derived();
write(b); //one app writes
Base* b2 = read(b); //second app reads
//b equals b2 (bitwise, not the ptr location)
Проблемы, которые я вижу здесь, к примеру, в том, что требуемое пространство для производного класса Base неизвестно (так, сколько shmem выделить?) Q
: как передавать объекты через указатели между приложениями?