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.
Hi Nicholas, If you haven't already done so, I suggest sending mail to microsoft about this bug in their compiler. Cheers, Jeremy On Apr 20, 2004, at 6:29 PM, Nicholas Burlett wrote:
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@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Jeremy Siek <jsiek@osl.iu.edu> http://www.osl.iu.edu/~jsiek Ph.D. Student, Indiana University Bloomington Graduating in August 2004 and looking for work C++ Booster (http://www.boost.org) _______________________________________________
The guys I know online who work on the compiler want ALL internal compiler error reports, did you follow the instructions for sending the report? At Tuesday 2004-04-20 16:29, you wrote:
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@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Victor A. Wagner Jr. http://rudbek.com The five most dangerous words in the English language: "There oughta be a law"
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@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Nicholas Burlett Sent: Wednesday, 21 April 2004 11:29 a.m. To: boost-users@lists.boost.org 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@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/bo> ost-users
Nicholas Burlett <nrb23@cornell.edu> wrote:
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.
could you pls. supply complete (or best : complete and minimal) code necessary to reproduce problem? Right now I can only guess that compiler goes to hell when there's no instanation of operator != for your class oedge_iterator. B.
We ran into yet another internal compiler error today. The MakeVCHappy code no longer makes VC++ happy. Once I have a better handle on what it takes to cause this, I'll see if I can post something that you can use to reproduce the problem. -Nick Burlett nrb23@cornell.edu On Apr 21, 2004, at 12:23 PM, Bronek Kozicki wrote:
Nicholas Burlett <nrb23@cornell.edu> wrote:
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.
could you pls. supply complete (or best : complete and minimal) code necessary to reproduce problem? Right now I can only guess that compiler goes to hell when there's no instanation of operator != for your class oedge_iterator.
B.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (5)
-
Bronek Kozicki
-
Jeremy Siek
-
Nicholas Burlett
-
Peter Hug
-
Victor A. Wagner Jr.