virtual inheritance and signature overlapping
<p>Let's say we have following code:</p>

<pre><code>struct A{
    virtual ~A(){}

    void f(){
        p = 42;
    }

    int p;
};

struct B : public virtual A{};
struct C : public virtual A{};
struct D : public B, public C, public A{}; //let's add non-virtual inheritance

int main(){
    D* pA = new D();
    pA-&gt;A::f(); //!

    return 0;
}
</code></pre>

<p>Is there any way to set p to 42 in the most base class A?
Following construction pA->A::f(); sets p to 42 for non-virtual inherited class A. Can we do that without cast? </p>
