如何创建一个Boost.Interprocess共享对象,该对象接受共享内存和传统内存的分配器?

时间:2019-11-15 22:20:02

标签: c++ boost

我目前正在实现一个使用Boost.Interprocessmanaged_shared_memory进行进程间通信的应用程序,并且我一直在遵循这种方法:

class SharedObj {
 public:
    SharedObj(..., void_allocator& allocator) {
        // Initialization logic
    }

    // Functions for shared allocation
};

class DefaultAllocatedObj {
 public:
    DefaultAllocatedObj(...) {
        // Same initialization logic as SharedObj
    }

    // Functions for default allocation
};

默认和共享实现在字面上是相同的,除了存储类成员的位置(共享与默认存储)。为了消除代码重复,维护负担以及使两个实现保持一致的易于出错的性质,我想将对象合并为一个类,该类可以接受共享分配器,但默认为传统分配器。有谁知道如何使用Boost.Interprocess实现这一目标?感谢您的所有时间和帮助!

最诚挚的问候,

Hayden McParlane

0 个答案:

没有答案