tmpl/stack5decl.hpp

The following code example is taken from the book
Object-Oriented Programming in C++
by Nicolai M. Josuttis, Wiley, 2002
© Copyright Nicolai M. Josuttis 2002


template <typename T>
class Stack {
  private:
    std::deque<T> elems;   // elements

  public:
    void push(const T&);   // store new top element
    void pop();            // remove top element
    T top() const;         // return top element
    bool empty() const {   // return whether the stack is empty
        return elems.empty();
    }

    // assign stack of elements of type T2
    template <typename T2>
    Stack<T>& operator= (Stack<T2> const&);
};