Boost logo

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