1 // Origin: Theo Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 2 3 template <typename T,double (T::*fun)() const> 4 struct I { 5 }; 6 7 struct R { RR8 R() { } 9 }; 10 11 class H: public R { 12 public: H()13 H(): R() { } f()14 double& f() { return a; } f()15 double f() const { return 1.0; } 16 double a; 17 }; 18 19 struct A { 20 typedef I<H,&H::f> F; AA21 A() { } 22 }; 23