fork download
  1. #include <iostream>
  2. int add(int, int);
  3.  
  4. int main() {
  5. using IntFunction = int (*)(int, int);
  6.  
  7. IntFunction IntFunc;
  8. IntFunction* IntFunc2;
  9.  
  10. IntFunc = &add;
  11. std::cout << (***IntFunc)(1, 2) << std::endl;
  12.  
  13. IntFunc2 = &IntFunc;
  14. std::cout << std::invoke(IntFunc2, 3, 4) << std::endl;
  15.  
  16. return 0;
  17. }
  18.  
  19. int add(int a, int b) {
  20. std::cout << "add" << std::endl;
  21. return a+b;
  22. }
Compilation error #stdin compilation error #stdout 0.01s 5324KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:14:21: error: ‘invoke’ is not a member of ‘std’
   std::cout << std::invoke(IntFunc2, 3, 4) << std::endl;
                     ^~~~~~
stdout
Standard output is empty