
can the export.hpp be replaced with something like #if msvc 6 #include old_export.hpp #else ... new code here or new export #endif That way vc6 is still supported subject to the header ordering restriction while for other compilers the restriction is eliminated. Since the old code is already written and tested, there is no cost to doing this. It also provides an "escape hatch" should we come upon some other compiler that can't handle the new code. I'll be curious to see how you did this. I did spend a lot of time trying to find a better solution. I'm also curious to see if it solves some code instantiation failures with code warrior. congratulations. Robert Ramey David Abrahams wrote:
Hi Robert,
The header ordering issue is solved... except on vc6. Unfortunately the technique depends on instantiating static members of templates with more than two dependent types, which leads ultimately to the same problem described here: http://www.boost.org/libs/serialization/doc/implementation.html#vc6. I've made lots of clever attempts at workarounds, but this compiler bug is etremely stubborn.
If you're interested in a fix for the issue that doesn't work on vc6, or if you're ready to drop support for vc6, then I'll proceed. Otherwise, please let me know and I'll check my work in on a branch for posterity.
Thanks,