fork download
  1. #include<stdio.h>
  2. #include<functional>
  3. #include<iostream>
  4.  
  5. typedef void (*myCall) (int);
  6.  
  7. void funccallback(int s)
  8. {
  9. std::cout<<"std::function: o numero igual="<<s<<std::endl;
  10. }
  11.  
  12. void ccallback(int s)
  13. {
  14. std::cout<<"typedef C: o numero igual="<<s<<std::endl;
  15. }
  16.  
  17.  
  18. //C++
  19. void ciclo(int b,int e, std::function<void(int)> fcall)
  20. {
  21. for(int i=b;i<e;i++)
  22. {
  23. fcall(i);
  24. }
  25. }
  26.  
  27.  
  28. void cicloC(int b,int e, myCall fcall)
  29. {
  30. for(int i=b;i<e;i++)
  31. {
  32. fcall(i);
  33. }
  34. }
  35.  
  36. int main()
  37. {
  38. //C++ func
  39. std::function<void(int)> func = funccallback;
  40. ciclo(0,10,func);
  41. ciclo(0,10,ccallback);
  42.  
  43. ciclo(0,10,[=](int s)-> void {std::cout<<"LambdaCall o numero igual="<<s<<std::endl;});
  44.  
  45.  
  46.  
  47. cicloC(0,10,ccallback);
  48.  
  49. cicloC(0,10,[=](int s)-> void {std::cout<<"LambdaCall o numero igual="<<s<<std::endl;});
  50.  
  51. }
  52.  
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
std::function: o numero igual=0
std::function: o numero igual=1
std::function: o numero igual=2
std::function: o numero igual=3
std::function: o numero igual=4
std::function: o numero igual=5
std::function: o numero igual=6
std::function: o numero igual=7
std::function: o numero igual=8
std::function: o numero igual=9
typedef C: o numero igual=0
typedef C: o numero igual=1
typedef C: o numero igual=2
typedef C: o numero igual=3
typedef C: o numero igual=4
typedef C: o numero igual=5
typedef C: o numero igual=6
typedef C: o numero igual=7
typedef C: o numero igual=8
typedef C: o numero igual=9
LambdaCall o numero igual=0
LambdaCall o numero igual=1
LambdaCall o numero igual=2
LambdaCall o numero igual=3
LambdaCall o numero igual=4
LambdaCall o numero igual=5
LambdaCall o numero igual=6
LambdaCall o numero igual=7
LambdaCall o numero igual=8
LambdaCall o numero igual=9
typedef C: o numero igual=0
typedef C: o numero igual=1
typedef C: o numero igual=2
typedef C: o numero igual=3
typedef C: o numero igual=4
typedef C: o numero igual=5
typedef C: o numero igual=6
typedef C: o numero igual=7
typedef C: o numero igual=8
typedef C: o numero igual=9
LambdaCall o numero igual=0
LambdaCall o numero igual=1
LambdaCall o numero igual=2
LambdaCall o numero igual=3
LambdaCall o numero igual=4
LambdaCall o numero igual=5
LambdaCall o numero igual=6
LambdaCall o numero igual=7
LambdaCall o numero igual=8
LambdaCall o numero igual=9