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