fork(1) download
  1. #include <iostream>
  2.  
  3. class MyClass
  4. {
  5.  
  6. };
  7.  
  8. template <typename Object>
  9. class List
  10. {
  11. public:
  12.  
  13. template<class C = Object>
  14. void insert(const C & x)
  15. {
  16. // call when Object is MyClass
  17. std::cout << "1" << "\n" ;
  18. }
  19.  
  20. template<class P = Object*>
  21. void insert(P* p)
  22. {
  23. // call when Object is MyClass*
  24. std::cout << "2" << "\n" ;
  25. }
  26. } ;
  27.  
  28. int main()
  29. {
  30. MyClass a;
  31.  
  32. List<MyClass> lst;
  33. List<MyClass*> plst;
  34.  
  35. lst.insert(a);
  36. plst.insert(new MyClass);
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0s 3228KB
stdin
Standard input is empty
stdout
1
2