class Stack
{
public:
   Stack();
   double pop();
   void push(double);
   void set_handler(double(*ef)(string));
private:
   vector data;
   int top_index;
   double (*error_fun)(string);
};

double default_handler(string message)
{
	throw logic_error("stack underflow");
}

rest as in Section 19.2.6