fork download
  1. #include <iostream>
  2.  
  3. struct My
  4. {
  5. typedef int foo;
  6. };
  7.  
  8. struct My2
  9. {
  10. };
  11.  
  12. template<typename T, typename I=typename T::foo> void Bar(const T&, I z = I())
  13. {
  14. std::cout << "My\n";
  15. }
  16.  
  17. template<typename T> void Bar(T&)
  18. {
  19. std::cout << "...\n";
  20. }
  21.  
  22. int main()
  23. {
  24. My my;
  25. Bar(my); // OK
  26. My2 my2;
  27. Bar(my2); // Also OK
  28. return 0;
  29. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
...
...