fork download
  1. #include <iostream>
  2.  
  3. // Forward declarations
  4. template <typename T> class C;
  5. template <typename T> std::ostream& operator<<(std::ostream& os, const C<T>& dt);
  6.  
  7. template <typename T>
  8. class C
  9. {
  10. public:
  11. explicit C(T data) : data_(data) {}
  12. friend std::ostream& operator<< <>(std::ostream& os, const C& dt);
  13. private:
  14. T data_;
  15. };
  16.  
  17. template <typename T>
  18. std::ostream& operator<<(std::ostream& os, const C<T>& dt)
  19. {
  20. return os << dt.data_;
  21. }
  22.  
  23.  
  24. int main()
  25. {
  26. C<int> der(234);
  27. std::cout << der;
  28. }
  29.  
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
234