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-12 09:13:38


>
> but this works:
>
> namespace std
>
> {
> template <typename T1, typename T2>
> std::ostream& operator<<(std::ostream& os,
> const boost::variant<boost::WR1<T1>, boost::WR2<T2> >& v)
> {
> if ( boost::get<boost::WR1<T1> >( &v ) )
> os << boost::get<WR1<T1> >( v )._data;
> else
> os << boost::get<WR2<T2> >( v )._data;
> return os;
> }
> }
>
> It seems the same case.
>

This seems to be a SFINAE problem. Is it possible, that
graph_traits<union_graph<...>>::vertex_descriptor or edge_descriptor does
not name an actual type? For example, did you misspell the type names inside
the union_graph class? I've had that problem before (it took an hour to
figure it out).

There's also a possibility that the compiler is choking on the complexity of
the parameterization. You are using a slightly dated compiler. Any chance
you can upgrade?

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