|
Boost : |
From: Michael Marcin (mmarcin_at_[hidden])
Date: 2007-04-12 12:46:03
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk