fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template< typename T >
  5. class Container;
  6.  
  7. template< typename T >
  8. ostream& operator<<( ostream& out, const Container< T >& a_container );
  9.  
  10. template< typename T >
  11. class Container
  12. {
  13. public:
  14. Container( T value );
  15.  
  16. private:
  17. T value;
  18.  
  19. friend ostream& operator<< <>( ostream& out, const Container< T >& a_container );
  20. };
  21.  
  22. template< typename T >
  23. Container< T >::Container( T a_value ): value( a_value )
  24. {
  25. }
  26.  
  27. template< typename T >
  28. ostream& operator<<( ostream& out, const Container< T >& a_container )
  29. {
  30. out << a_container.value;
  31. return out;
  32. }
  33.  
  34. int main()
  35. {
  36. Container< int > a_container( 42 );
  37.  
  38. cout << a_container;
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
42