#include template class Bar { T data; public: Bar(const T &); T get() const; }; template Bar::Bar(const T &value) : data(value) { } template T Bar::get() const { return data; } template std::ostream & operator<<(std::ostream &os, const Bar &b) { return os << b.get(); }