fork download
  1. #include <iostream>
  2.  
  3. typedef bool(*DefaultComparator)(int);
  4.  
  5. bool NumberIsEven(int i)
  6. {
  7. return i % 2 == 0;
  8. }
  9.  
  10. template<typename compare = DefaultComparator>
  11. void CheckNumber(int j, compare cmp = nullptr)
  12. {
  13. if (j > 0 && (cmp ? cmp(j) : true))
  14. std::cout << "checked" << std::endl;
  15. else
  16. std::cout << "failed" << std::endl;
  17. }
  18.  
  19. int main()
  20. {
  21. CheckNumber(1);
  22. CheckNumber(1, NumberIsEven);
  23. CheckNumber(2);
  24. CheckNumber(2, NumberIsEven);
  25. }
Success #stdin #stdout 0s 4572KB
stdin
Standard input is empty
stdout
checked
failed
checked
checked