
Pavel Antokolsky aka Zigmar wrote:
On 5/6/05, Pavel Vozenilek <pavel_vozenilek@hotmail.com> wrote:
The problem is about inability of Windows to "merge" static data from different DLLs into one place.
This results in more than one lifetime_priority queue in single application, frex.
I'm not sure that shared memory is a right approach. Shared memory is usually used to share the part of memory between several different processes, not the same process. Therefor shared memory are something that is OS-wide and using it to share something inside single process is a bit overkill, besides, it can possible to run into several troubles, for example, you have to ensure there is not collisions between different processes and shared memory ids.
Personally, I more like the idea of giving the user some way to specify an allocator for Singleton library's managing facilities (lifetime_priority?). Some kind of create_using_std_allocator_ex, but not for single singleton, but for library manager.
What if I were to move the implementation details that require being only defined once to source files, and by default have those source files included by the headers. Then if some macro is specified, I could omit these inclusions and instead link to a separate dll that is a build of these files. Would this solve the problem? -Jason