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