I have linked list class that implements a node structure, like this:
template<class T>
class LinkedList
{
public:
    struct Node {
        T value;
        Node *next;
    };
    int Length;
    Node *head;
    Node *tail;
    LinkedList() {
    Length = 0;
    Node* head = nullptr;
    Node* tail = nullptr;
    }
};
I tried accessing the node Node structure from the driver file like so:
#include "LinkedList.h"
template<class T>
void foo(LinkedList<T> list) {
    LinkedList<T>::Node* a = list.head; // does not work
    LinkedList<int>::Node* b = list.head; // works (if T is int of course)
}
Using a template T does not work (it gives me "identifier not found" error message), while directly specifying the correct datatype works. Why is that? Is there a way to avoid the error?