fork(1) download
  1. #include <stdio.h>
  2.  
  3. class duck{
  4. public:
  5. template <typename Quacker>
  6. void quack(const Quacker & q){
  7. quack_the_duck(*this, q);
  8. }
  9. void quack_happily(){
  10. printf("quack :)");
  11. }
  12. void quack_sadly(){
  13. printf("quack :(");
  14. }
  15. void quack_confusedly(){
  16. printf("quack ??");
  17. }
  18. };
  19.  
  20. template <typename Quacker>
  21. void quack_the_duck(duck & d, const Quacker & q){
  22. d.quack_confusedly();
  23. }
  24.  
  25. class a_quacker{
  26. public:
  27. };
  28.  
  29. void quack_the_duck(duck & d, const a_quacker & q){
  30. d.quack_happily();
  31. }
  32.  
  33. int main(){
  34. duck d;
  35. a_quacker cracker;
  36. d.quack(cracker);
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
quack :)