in c++, boost interprocess has offset_ptr which is useful since the shared data structure may be mapped at different locations in memory in each process