#ifndef _VISITOR_HPP_ #define _VISITOR_HPP_ template struct visitor { virtual bool visit(T o)=0; virtual ~visitor(){} }; template struct acceptor { virtual void accept(visitor&v) { } virtual ~acceptor(){} }; #endif