Hello,

I am trying to make a class that can accept any type as an argument.

Here is the class:


import std.container: SList;


class Stack {

  private SList!T list;
  private int _size;

  this(T)() {
    list = SList!T;
    _size = 0;
  }

  public void push(T)(T item) {
    list.insertFront(item);
    _size++;
  }

  public void pop(T)() {
    if(_size > 0){
      list.removeFront();
      _size--;
    }
  }

  public int getSize() { return _size; }

}


When I compile with dmd, I get this error:

Stack.d(6): Error: undefined identifier 'T'

That's on the line private SList!T list;

So the SList needs a type, but I can't give that type to it at that moment when I instantiate the class.
How do I over come this problem?

I might just write this again, using structs as a SLL. I might have similar issues with that as well.

Thanks,
Mark.

Reply via email to