template <typename T> struct List { struct node { T key; node* prev; node* next; }; node* first = nullptr; node* last = nullptr; // functions };
template <typename T> bool compare(List<T> L1, List<T> L2) { if (L1.size() == L2.size()) { List<T>::node* currentL1 = L1.first; //error List<T>::node* currentL2 = L2.first; //error while (currentL1) if (currentL1->key != currentL2->key) return 0; else { currentL1 = currentL1->next; currentL2 = currentL2->next; } } else return 0; return 1; }
typename
//.. typename List<T>::node* currentL1 = L1.first; typename List<T>::node* currentL2 = L2.first; // ..
auto
auto * currentL1 = L1.first;
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)