Есть очередь:
template<typename T>
class QueueList {
  public:
    QueueList ();
    void push (const T i);
    T pop ();
private:
    typedef struct node {
      T item;      
      node * next;
    } node;
    typedef node * link; 
    int size;        
    link head;      
    link tail;       
};
template<typename T>
QueueList<T>::QueueList () {
  size = 0;       
  head = NULL;    
  tail = NULL;   
}
template<typename T>
void QueueList<T>::push (const T i) {
 
  link t = tail;
 
  tail = (link) new node;
 
  tail->next = NULL;
 
  tail->item = i;
 
  if (isEmpty ())
 
    head = tail;
 
  else
 
    t->next = tail;
 
  size++;
}
В нее помещаю структуру:
struct listStruct{
      
    unsigned long limit;
    void (*func)(char *);    
  };
Создаю очередь:
QueueList <listStruct> list;
И все работает но!
Как добавить структуру вида:
template<typename T>
struct listStruct{
      
    unsigned long limit; 
    
    void (*func)(T);
  };
Буду благодарен за любую помощь в решении данной проблемы.
На конструкцию вида: templatetypename T> class C {...} ругается...