Eric,
sorry for the delay. I only now found some time to work on that issue:
http://lists.boost.org/boost-users/2007/08/30120.php
After analysing your post and investigation what's going on, I would like to write my opinion:
changing xpressive_fwd.hpp or proto_fwd.will not help.
I grepped where fusion includes are used and need to enclose these in some conditional statements:
#ifdef BOOST_XPRESSIVE_FUSION_V2
# include ... //fusion 2 headers
#else
# include ... // fusion 1 headers
#endif
Actually this can be done using some kind of a macro function like:
#include BOOST_XPRESSIVE_FUSION_ROOT(sequence/cons.hpp)
...
The macro function will deliver the root dependent on the predefined macros like:
1. if !defined XPRESSIVE_FUSION_ROOT and use V2
=> choose the root for V2
else => choose the root for V1
As I found out the following files need to be changed:
linker.hpp
alternate_matcher.hpp
alt_compilers.hpp
any.hpp
cons.hpp
arg_traits.hpp
op_base.hpp
proto_fwd.hpp
If you give me your green light I will do it and submit a patch.
With Kind Regards,
Ovanes