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;
> 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?