#ifndef _BOX_HPP_ #define _BOX_HPP_ template class Box { T e; public: Box(T e); T get() const; void set(T e); template friend std::ostream& operator<<(std::ostream& out, const Box& t); }; template Box::Box(T e) { this->e = e; } template T Box::get() const { return e; } template void Box::set(T e) { this->e = e; } template std::ostream& operator<<(std::ostream& out, const Box& t) { out << t.get(); return out; } #endif