fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. static int func( void );
  5. int func( void ){ return 0; }
  6.  
  7. template<class T> class A;
  8.  
  9. template<class T> class A
  10. {
  11. template<class U> int func( void );
  12. int func2( void ){ return 0; }
  13. };
  14.  
  15. template<class T>
  16. template<class U> int A<T>::func( void )
  17. {
  18. return 0;
  19. }
  20.  
  21. class B
  22. {
  23. public:
  24. template<class T> int func( void );
  25. int func2( void ){ return 0; }
  26. static int value;
  27. };
  28.  
  29. int B::value;
  30.  
  31. template<class T> int B::func( void ){ return 0; }
  32.  
  33. class C
  34. {
  35. template<class T>
  36. friend class A;
  37.  
  38. friend int func( void );
  39. friend int B::func2( void );
  40. template<class T>
  41. friend int B::func( void );
  42. template<class T>
  43. // template<class U>
  44. friend int A<T>::func( void );
  45. template<class T>
  46. friend int A<T>::func2( void );
  47. };
  48.  
  49. int main() {
  50.  
  51. func();
  52. B b;
  53. b.func<int>();
  54. C c;
  55. return 0;
  56. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
Standard output is empty