fork download
  1. #include <cstdio>
  2. #include <iostream>
  3. #include <functional>
  4. using namespace std;
  5.  
  6. double qax(int a, long b) { return a * b; }
  7. double quux(int a, long b) { return a * b; }
  8. std::function<double(int, long)> gfred1 = qax;
  9. std::function<double(int, long)> gfred0 = quux;
  10.  
  11. int main() {
  12. fprintf(stdout, "%d\n", gfred1.target<double(*)(int, long)>() == gfred0.target<double(*)(int, long)>());
  13. fprintf(stdout, "%d\n", *gfred1.target<double(*)(int, long)>() == qax);
  14. fprintf(stdout, "%d\n", *gfred0.target<double(*)(int, long)>() == qax);
  15. fprintf(stdout, "%d\n", *gfred0.target<double(*)(int, long)>() == quux);
  16. fprintf(stdout, "%d\n", *gfred1.target<double(*)(int, long)>() == quux);
  17. fprintf(stdout, "%d\n", *gfred1.target<double(*)(int, long)>() != quux);
  18. fprintf(stdout, "%d\n", *gfred1.target<double(*)(int, long)>() != qax);
  19. fprintf(stdout, "%d\n", *gfred0.target<double(*)(int, long)>() != qax);
  20. fprintf(stdout, "%d\n", *gfred0.target<double(*)(int, long)>() != quux);
  21. return 0;
  22. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
0
1
0
1
0
1
0
1
0