KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a struct "MachineState", and I created a list of type "MachineState*". When I try to iterate through the list, I Keep getting " error C2839: invalid return type 'MachineState **' for overloaded 'operator -> I'm using Microsoft Visual Studio 10. I googled the error and all i could find out was "The -> operator must return a class, struct, or union, or a reference to one." Struct MachineState { template <typename MachineTraits> friend class Machine; enum Facing { UP, RIGHT, DOWN, LEFT}; MachineState() : m_ProgramCounter(1) , m_ActionsTaken(0) , m_Facing(UP) , m_Test(false) , m_Memory(nullptr) ,x(0) ,y(0) ,point1(25, 10) ,point2(10, 40) ,point3(40, 40) { } int m_ProgramCounter; int m_ActionsTaken; Facing m_Facing; bool m_Test; int x; int y; Point point1; Point point2; Point point3; }; I declare the list as std::list<MachineState*> zombs; Here is where I try to iterate through my list and i keep getting the error, on the "it->point1" saying that the expression must have a pointer to class type. for(std::list<MachineState*>::iterator it = zombs.begin(); it != zombs.end(); it++) { Point points[3] = {it->point1, it->point2, it->point3}; Point* pPoints = points; SolidBrush brush(Color(255, 255, 0, 0)); m_GraphicsImage.FillPolygon(&brush, pPoints,3); }
Tags (comma-separated)
Save Edits
Cancel