Hi folks, got a couple of questions about using shared memory allocators. Please see below.
I have the following code template <typename T> using CAP_Alloc = cached_adaptive_pool<T, segment_manager_t>; using CAP_Shmem_String = basic_string<char, std::char_traits<char>, CAP_Alloc<char> >; using CAP_Shmem_String_Alloc = CAP_Alloc<CAP_Shmem_String>; using CAP_Shmem_Void_Alloc = CAP_Alloc<void>; class MyDataBlock{ using pointer = CAP_Shmem_String_Alloc::pointer; pointer strData; float extraData; MyDataBlock(): strData(nullptr), extraData(0.0) {} MyDataBlock(const CAP_Shmem_Void_Alloc& alloc) { /* My question is how do I convert CAP_Shmem_Void_Alloc to type CAP_Shmem_String_Alloc to call allocate? And do I pass in the void allocator as a construction argument? Is there a difference between allocate and construct? */ } ~MyDataBlock() { /* To delete the memory, do I need to keep around a copy of the original allocator, so I can call deallocate or destroy? Or can that be derived or converted from somewhere, like calling strData->alloc() ? */ } } Any help would be greatly appreciated. Thank you.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users