1 class S 2 { 3 int (&fnref0)(double); 4 // distinct kinds 5 int* &fnref1; 6 int &fnref2; 7 }; 8 foo(S & s)9void foo(S& s) 10 { 11 } 12 typedef void(&callback)(int); 13 fn0(void)14callback fn0(void) 15 { 16 } 17 fn1(void)18int(&fn1(void))(int) 19 { 20 } 21 fn2(callback c)22void fn2(callback c) 23 { 24 } 25