假定你有一些特殊的过程,他们采用malloc 和free内存模型来管理一个位于共享内存的堆
void* mallocShared(size_t bytesNeeded);
void* freeShared(void* ptr);
而你想把STL容器的内容放到这块共享内存中去。
template<typename T>
class SharedMemoryAllocator{
pointer allocator(size_type numObjects, const void *localityHint = 0)
{
return static_cast<pointer>(mallocShared(numObjects*sizeof(T)));
}
void deallocate(pointer ptrToMemory, size_type numObjects)
{
freeShared(ptrToMemory);
}
};