For those of use who are pointer to member syntax challenged (including me), example G of the attachment to the bug:<div><br></div><div><div>class G{</div><div>    public:</div><div>    class G1{</div><div>        int a;</div>
<div>        int b;</div><div>    }c;</div><div>    int d;</div><div>    G(int dd):d(dd){};</div><div>};</div><div><br></div><div>const G g;</div><div>G::G1 G::* gg = &G::c;</div></div><div><br></div><div>(nobody least of all me spotted the mistake that the last character should be c :)</div>
<div><br></div><div>The last line is read as, gg is a pointer to a member of class G and the type of that member is class G1 which is a member of class G and gg is initialised to a pointer to member c of an object of class G.</div>
<div><br></div><div>Cheers</div><div>Lex</div>