// file : cult/containers/stack.hxx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2010 Boris Kolpackov // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef CULT_CONTAINERS_STACK_HXX #define CULT_CONTAINERS_STACK_HXX #include #include namespace Cult { namespace Containers { template > class Stack { public: typedef C Container; typedef typename Container::Value Value; public: explicit Stack (Container const& c = Container()) : c_ (c) { } Boolean empty () const { return c_.empty(); } Size size () const { return c_.size(); } Value& top () { return c_.back(); } Value const& top () const { return c_.back(); } Void push (const Value& x) { c_.push_back(x); } Void pop() { c_.pop_back(); } protected: Container c_; }; /* template bool operator==(const stack& x, const stack& y); template bool operator< (const stack& x, const stack& y); template bool operator!=(const stack& x, const stack& y); template bool operator> (const stack& x, const stack& y); template bool operator>=(const stack& x, const stack& y); template bool operator<=(const stack& x, const stack& y); */ } } #endif // CULT_CONTAINERS_STACK_HXX