My question is about the inclusion of a typedef struct (or at least I think it is). It's probably silly but I couldn't figure out what's wrong with my code.
I have a Node.h header that declares a class Node:
class Node {
public:
    Node(/*some parameters*/); // Class constructor
    typedef struct{ // This represents a weighted edge of weight "weight" from the current node to another node "node"
        Node* node;
        double weight;
    }EdgeInfo;
    vector<EdgeInfo*> OutEdges; // This vector represents the outgoing weighted edges from this node
};
So I figured out that's the only place in my code I can declare the struct because that's the only place where I can declare EdgeInfo that "knows" what a Node class object is.
Then I have a Graph.h header, including the Node.h file, that declares a Graph class.
Now in the Graph.cpp file I'm implementing a function that loops on all the outgoing edges of a Node, more or less like this:
Node* current = /*passing an object of class Node*/
for(EdgeInfo* out : current->OutEdges){           
    /*working on the edges*/
}
The problem is that when I compile I get the error error: ‘EdgeInfo’ was not declared in this scope at the for loop.
As you probably can see I'm kind of a C++ newbie. I thought that by including Node.h I could use the ´typedef struct` definitions inside the class the same way I use variables and functions. Am I wrong? Or didn't I understand how includes work in C++?
I hope I didn't miss any detail. Thank you so much for the help!
 
    