
Stefan Seefeld 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.
...and we gave up on XLC++ with our project. So no ideas about possible work-arounds from me either. Sorry.
I guess it's time for me to learn something new. What's the purpose of something like: template <typename T, std::size_t N> struct tag_of<boost::array<T, N> >; shouldn't it be something like: template <typename T, std::size_t N> struct tag_of<boost::array<T, N> > {}; or: struct adapted_fusion_tag; template <typename T, std::size_t N> struct tag_of<boost::array<T, N> > { typedef adapted_fusion_tag type; }; Or maybe I compeletly miss the point. Thanks, Michael Marcin