
Eric Niebler wrote:
Joel de Guzman wrote:
Stefan Seefeld wrote:
Michael Marcin wrote:
If I include <boost/fusion/support/tag_of.hpp> my compiler (derived from Metrowerks 9.4) gives me several errors claiming illegal partial specializations.
It looks like it's partially specializing forward declarations of the tag_of structure. I don't know if that's allowed (from the error I assume probably not) but it certainly seems to be pointless to me. Are these perhaps supposed to be more than declarations? What's the point, if you (partially) specialize it anyway ?
FWIW, I have seen similar errors with IBM's XLC++ and am pretty sure that at least in that particular case it was a compiler bug.
Yes, it's most probably a compiler bug. I've seen this before. patch welcome ;-). I do not have CW now.
The attached patch should fix this problem. It uses an MPL assert in the primary template to catch potential ODR violations, rather than forward declared partial specializations.
Cool! Committed to CVS? Thanks! Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net