using this pointer in initializer list
<pre><code>struct T
{
    int a;
};

struct C
{
    T&amp; r;
    C(T&amp; v) : r(v) {}
};

struct E : T
{
    T&amp; r;
    E(T const&amp; v) : r(*this), T(v) {}   // ok
};

struct F : C, T // base order doesn't matter here
{
    //F(T const&amp; v) : C(*this), T(v) {}   // error : C::r is not initialized properly
    F(T const&amp; v) : C(*static_cast&lt;T*&gt;(this)), T(v) {}   // ok
    //F(T const&amp; v) : C(static_cast&lt;T&amp;&gt;(*this)), T(v) {}   // ok
};

int main()
{
    T v;
    F f(v);
    f.r.a = 1;
}
</code></pre>

<p>Although using this pointer in initializer list could be problem, but I've never expected this happened to PODs and may be simply fixed by explicit cast;
Is this some compiler bug or std related problem?</p>
