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