// Test that various calls to non-functions work. void f () { } typedef void (*fptr)(); typedef void (&fref)(); fptr p = f; fref r = f; const fptr &pr = p; struct A { fptr p; A (fptr n): p(n) { } operator fptr () { return p; } }; struct B { fref r; B (fptr n): r(*n) { } operator const fref () { return r; } }; struct C { const fptr ≺ C (fptr n): pr(n) { } operator const fptr& () { return pr; } }; int main () { f(); p(); r(); pr(); A a (f); a(); a.p(); B b (f); b(); b.r(); C c (f); c(); c.pr(); }