Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

invalid use of template name without an argument list

I am facing a problem with my linked list class, I have created the interface and implementation files of the class, but when I build it, this error occurs: "invalid use of template name 'LinkedList' without an argument list". here's my interface file:

#ifndef LINKEDLIST_H #define LINKEDLIST_H  template <typename T> struct Node{     T info;     Node<T> *next; };  template <typename T> class LinkedList {     Node<T> *start;     Node<T> *current; public:     LinkedList();     ~LinkedList(); };  #endif // LINKEDLIST_H 

and this is my implementation code:

#include "LinkedList.h"  LinkedList::LinkedList() {    start = nullptr;    current = nullptr; }  LinkedList::~LinkedList()   {    } 
like image 472
Alladin Avatar asked Aug 12 '13 12:08

Alladin


1 Answers

Write it like this:

template<typename T> LinkedList<T>::LinkedList() {    start = nullptr;    current = nullptr; } 

And similarly for other member functions. But you'll run into another problem - declarations and definitions of a template can't be separated to different files.

like image 180
jrok Avatar answered Sep 17 '22 20:09

jrok