
The serialization library deals with a lot of these issues. I've managed to make it work with all the compilers that boost supports. I didn't have problems getting it to this point - but I had no choice but to resolve them all somehow. The result of my efforts is extended_type_info and void_cast. Asside from the fact that not all compilers handled the 'const' the same way, I also needed a little more information than the normal typid() delivers. Specifically I wanted to cast between pointers at runtime eventhough the classes weren't polymorphic in the usual sense. I toyed with the idea of documenting extended_type_info and void_cast separatly. But I sort of bogged down while trying to imagine how it might be used by other applications. I do think it could be enhanced and documented to handle the applications you have in mind - but I can't say for sure. Given that you've already invested a lot of effort understanding all the issues related to this, I would much appreciate it if you could take a look at extended_type_info and void_cast in the serialization package and render your assessment of their more general utility. Robert Ramey