Boost logo

Boost :

Subject: Re: [boost] [Variant] [BGL] Variant<edge_descriptor, edge_descriptor> is not EqualityComparable
From: Andrew Sutton (andrew.n.sutton_at_[hidden])
Date: 2009-11-20 08:20:04


> If you can post your full implementation, I'll run it through GCC and see
>> if the error persists, or if there's a nicer way to fix it.
>
>
For starters, the program you gave me doesn't compile in GCC - actually, it
probably shouldn't compile at all. Some of your functions in
Test_union_different_iterator are defined over type parameters when they
need to be defined over template template parameters. See attached for
fixes.

The good news is that GCC will generate the same compiler error.

I /think/ the problem is related to the fact that variant actually defines
operator== as a member function. This seems to cause the compiler to
"prefer" a member operator!=, which variant does not define. Maybe the
overload you gave is somehow incompatible with that. One of my students
reported a similar issue on a different project.

Best bet: stick with the solution you have.

Andrew Sutton
andrew.n.sutton_at_[hidden]




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk