Sohail Somani wrote:
I can develop a patch using boost once that I think would work. Locally, I'm going to have to do this anyway. Fortunately, my test has ceased to fail so I can't test it. To make it as "pay for what you use", one can #ifdef it out if they have special knowledge of the platform/compiler.
OK - you've convinced me there could be a problem. I don't see a magic bullet solution. I think users need a couple of options and a good explanation in the manual. Options a) don't use export - use explicit archive level registration instead. b) some sort of explicit type registration. Users could just put at after the main entry point and/or in the DLL loading phase c) an automatic method using thread safety primitives - maybe there are some small ones. Then you have the *#ifdef ... The main obstacle is that requires a detailed understandable explanation along with examples - a fair amount of work. Note that this really applies to all extended type info systems so the explanation is even more complex. And once embarks upon this kind of effort, its interesting to consider "finishing" extended type info with some missing functionality like "construct from export name". It would also be interesting to investigate if there is some sort of lock free solution - At least on some compilers/ processors. Just goes to show that no good idea goes unpunished. SOOO I'm am positive about the idea. However, like most good ideas, its a lot bigger than it first appears. Having written this, it would seem that this is territory well traveled by those working on a good Singleton suitable for such a purpose. (Amazingly, I don't even know if boost has such a thiing) Ideally, I would just like to use that (assuming it doesn't import everything on planet earth). Robert Ramey