somedefs.h 542 B

123456789101112131415161718192021222324252627282930
  1. // somedefs.h
  2. #include <iostream>
  3. template <typename T, typename F>
  4. T use_f(T v, F f)
  5. {
  6. static int count = 0;
  7. count++;
  8. std::cout << "use_f count = " << count
  9. << ", &count = " << &count << endl;
  10. return f(v);
  11. }
  12. class Fp
  13. {
  14. private:
  15. double z_;
  16. public:
  17. Fp(double z = 1.0) : z_(z) {}
  18. double operator()(double p) { return z_*p; }
  19. };
  20. class Fq
  21. {
  22. private:
  23. double z_;
  24. public:
  25. Fq(double z = 1.0) : z_(z) {}
  26. double operator()(double q) { return z_+ q; }
  27. };