<div dir="ltr"><div><div><div>Thanks for the explanation Ben.<br></div><br>The MR to fix it is under way.<br><br></div>Kind regards,<br></div>JON HAITZ<br><br><div><div><div><div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><table style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium" cellspacing="0" cellpadding="0" border="0" align="center"><tbody><tr><td></td></tr></tbody></table><pre style="color:rgb(0,0,0);word-wrap:break-word;white-space:pre-wrap">--<br><br></pre><div><div dir="ltr"></div></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On 8 May 2017 at 14:48, Ben Boeckel <span dir="ltr"><<a href="mailto:ben.boeckel@kitware.com" target="_blank">ben.boeckel@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, May 05, 2017 at 18:31:53 +0200, Jon Haitz Legarreta wrote:<br>
> The ivar being reported as a duplicate is not, in fact, a duplicate: both<br>
> the parent class vtkChartMatrix and the child vtkScatterPlotMatrix define<br>
> an internal class named PIMPL. And the ivar "Private" is an instance of<br>
> that class.<br>
<br>
</span>vtkChartMatrix is doing PIMPL wrong. It is `protected`, not `private`. I<br>
think that is likely the proper fix.<br>
<span class=""><br>
> I was not aware of the use of private implementations that PIMPL represents<br>
> within the VTK context.<br>
<br>
</span>Usually, I've seen `<classname>Internal` instead declared outside of the<br>
class itself, but these are usually `protected` so that subclasses can<br>
use them. If `vtkChartMatrix::Private` has this intended use, it should<br>
follow that pattern instead.<br>
<span class=""><br>
> BTW, I'm interested in knowing about the (need of/convenience) PIMPL<br>
> classes. Is the use of such PIMPL classes documented somewhere?<br>
<br>
</span>In VTK? I don't think so. The idea is to hide the amount of data<br>
necessary for completely internal data collection out of the header and<br>
affecting `sizeof(class)` (an ABI break) or exposing too much (prone to<br>
breaking API because users of the class rely on the wrong things). The<br>
Wiki page is useful:<br>
<br>
    <a href="https://en.wikipedia.org/wiki/Opaque_pointer" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/<wbr>Opaque_pointer</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--Ben<br>
</font></span></blockquote></div><br></div></div></div></div></div></div>