#ifndef __SHOW_H__ #define __SHOW_H__ #include #include class IShow { public: virtual std::string show() const; }; std::string show(Int i) { std::stringstream ss; ss << i; return ss.str(); } std::string show(IShow& showable) { return showable.show(); } std::string show(IShow&& showable) { return showable.show(); } #endif