我目前正在实现一个使用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