fork download
  1. #include <iostream>
  2. #include <functional> //Required for std::function.
  3.  
  4. //Not directly related to the problem.
  5. //void myFunc(char seperator)
  6. //{
  7. // std::cout << "char overload" << std::endl;
  8. //}
  9.  
  10. void myFunc(std::function<bool(char)> seperatorFunc)
  11. {
  12. std::cout << "std::function<bool(char)> overload" << std::endl;
  13. }
  14.  
  15. void myFunc(const std::string &seperator)
  16. {
  17. std::cout << "std::string overload" << std::endl;
  18. }
  19.  
  20. bool testCallback(char)
  21. {
  22. return true;
  23. }
  24.  
  25. int main()
  26. {
  27. myFunc("String literal");
  28. myFunc(std::string("std::string"));
  29. //myFunc('c');
  30. myFunc(testCallback);
  31.  
  32. return 0;
  33. }
Compilation error #stdin compilation error #stdout 0s 2984KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:27:28: error: call of overloaded ‘myFunc(const char [15])’ is ambiguous
prog.cpp:27:28: note: candidates are:
prog.cpp:10:6: note: void myFunc(std::function<bool(char)>)
prog.cpp:15:6: note: void myFunc(const string&)
stdout
Standard output is empty