fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template <typename T>
  5. class SomeClass {
  6. public:
  7.  
  8. typedef bool (*compareFunction)(T, T);
  9.  
  10. SomeClass(compareFunction c) : pCompare(c), val(0.0) {}
  11.  
  12. bool compare(T v)
  13. {
  14. return (*pCompare)(val, v);
  15. }
  16.  
  17. private:
  18.  
  19. double val;
  20. compareFunction pCompare;
  21. };
  22.  
  23. bool compare1(double a, double b)
  24. {
  25. cout << "compare1" << endl;
  26. return a == b;
  27. }
  28.  
  29. bool compare2(double a, double b)
  30. {
  31. cout << "compare2" << endl;
  32. return a == b;
  33. }
  34.  
  35. int main()
  36. {
  37. SomeClass<double> obj1(&compare1);
  38. obj1.compare(5.55);
  39. SomeClass<double> obj2(&compare2);
  40. obj2.compare(5.55);
  41. }
  42.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
compare1
compare2