I'm currently developing a cross-platform shared library in C++ and came across the problem of memory management across module boundaries, ie, releasing memory allocated in my shared library in the process that calls it.
I've been down the list of possible solutions for this - using a C interface, using only pure abstract interfaces and using CoTaskMemAlloc
/CoTaskMemFree
and the latter seems to be the easier one.
Has anyone tried to make standard smart pointers work with these two methods? Are there any smart pointer implementations that use these methods so smart pointers can be shared across DLL boundaries?