fork(1) download
  1. #include <iostream>
  2. #include <functional>
  3.  
  4. template<class... Ts>
  5. void callFunction(const std::function<void(Ts...)>& function, Ts... parameters)
  6. {
  7. function(parameters...);
  8. }
  9.  
  10. void myFunc(const std::string& output)
  11. {
  12. std::cout << output << std::endl;
  13. }
  14.  
  15. int main()
  16. {
  17. callFunction<const std::string&>(&myFunc, "Hello world");
  18. return 0;
  19. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:17:57: error: no matching function for call to ‘callFunction(void (*)(const string&), const char [12])’
  callFunction<const std::string&>(&myFunc, "Hello world");
                                                         ^
prog.cpp:5:6: note: candidate: template<class ... Ts> void callFunction(const std::function<void(Ts ...)>&, Ts ...)
 void callFunction(const std::function<void(Ts...)>& function, Ts... parameters)
      ^~~~~~~~~~~~
prog.cpp:5:6: note:   template argument deduction/substitution failed:
prog.cpp:17:57: note:   mismatched types ‘const std::function<void(Ts ...)>’ and ‘void (*)(const string&) {aka void (*)(const std::__cxx11::basic_string<char>&)}’
  callFunction<const std::string&>(&myFunc, "Hello world");
                                                         ^
stdout
Standard output is empty