Boost logo

Boost Users :

From: Peter Hug (petehug_at_[hidden])
Date: 2004-04-20 23:36:45


Does it compile if you move makeVChappy() into graph.h and declare it
inline? At least this would mean graph.h clients need not worry.

> -----Original Message-----
> From: boost-users-bounces_at_[hidden]
> [mailto:boost-users-bounces_at_[hidden]] On Behalf Of
> Nicholas Burlett
> Sent: Wednesday, 21 April 2004 11:29 a.m.
> To: boost-users_at_[hidden]
> Subject: [Boost-users] BGL: INTERNAL COMPILER ERROR in VC7.1
>
>
> I'm rather unsure about what is causing this, but I get an internal
> compiler error in Visual C++ 7.1 when using BGL in some specific
> circumstances.
>
> I have a graph defined in class Graph defined as such:
>
> typedef property<edge_feedback_t, bool> EdgeFeedback;
> typedef property<edge_sourcejack_t, IAudioOutputJack*,
> EdgeFeedback> EdgeSourceJack;
> typedef property<edge_destinationjack_t, IAudioInputJack*,
> EdgeSourceJack> EdgeDestinationJack;
> typedef EdgeDestinationJack EdgeProperty;
> typedef boost::property<boost::vertex_index_t, int>
> VertexIndexProp;
> typedef property<vertex_name_t, nsCOMPtr<IAudioModule>,
> VertexIndexProp> VertexProperty;
> typedef adjacency_list<listS, listS, bidirectionalS,
> VertexProperty, EdgeProperty> graphdata;
> typedef graph_traits < graphdata >::vertex_descriptor vertdsc;
>
>
> This definition works fine in the graph.cpp file that implements the
> class Graph.
>
> However, when I use graph.h in another cpp file, I get
> bizarre compiler
> errors:
> c:\Boost\include\boost
> -1_31\boost\mpl\aux_\preprocessed\plain\apply.hpp(50) : fatal error
> C1001: INTERNAL COMPILER ERROR
>
> After some trial and error, I narrowed the problem down to
> needing to
> have a != between two oedge_iterators _somewhere_ in the cpp file
> including graph.h. Simply putting the following function into
> my other
> files will cause them to compile just fine:
>
> void makeVChappy()
> {
> typedef graph_traits< Graph::graphdata >::out_edge_iterator
> oedge_iterator;
> oedge_iterator oiter, oend;
> oiter != oend;
> }
>
> I'm a a complete loss as to how this could be happening, but since I
> have a work-around for now, I'm not going to push the issue too much
> further at the moment --- I just thought I'd bring this to your
> attention, and see if anyone knows of a more elegant solution.
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/bo> ost-users
>
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net