I think a reasonable compromise would be to have<div><br></div><div>1) vtkClassMacro</div><div><br></div><div>and</div><div><br></div><div>2) vtkDisableCopyMacro</div><div><br></div><div>Since we already have a marco for New, (vtkStandardNewMarco), having New inside vtkClassMacro may not be a bad idea (and hence it could be useful to have it). </div>
<div><br></div><div><br></div><div><br><div class="gmail_quote">On Thu, Sep 13, 2012 at 2:44 PM, Utkarsh Ayachit <span dir="ltr"><<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am suggesting the vtkDisableCopy() macro as an alternative to the<br>
vtkClassMacro() since after stripping out the controversial parts for<br>
vtkClassMacro() all that remains is disable copy, vtkTypeMacro() and<br>
New() and frankly, New() is also not always needed since it doens't<br>
work for abstract classes.<br>
<br>
<br>
On Thu, Sep 13, 2012 at 2:40 PM, Marcus D. Hanwell<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:marcus.hanwell@kitware.com">marcus.hanwell@kitware.com</a>> wrote:<br>
> Why provide a disable copy macro when it is a requirement of vtkObject<br>
> derived classes? It should just be part of the vtkClassMacro, with<br>
> QObject derived classes they can have copy constructors, and so<br>
> provided an option makes more sense there.<br>
><br>
> On Thu, Sep 13, 2012 at 2:29 PM, Aashish Chaudhary<br>
> <<a href="mailto:aashish.chaudhary@kitware.com">aashish.chaudhary@kitware.com</a>> wrote:<br>
>> +1 to remove construct and destructor. Also I think like Qt we should<br>
>> provide disable copy macro and use it in vtkClassMacro.<br>
>><br>
>> Thanks,<br>
>><br>
>><br>
>> On Thu, Sep 13, 2012 at 12:39 PM, Cory Quammen <<a href="mailto:cquammen@cs.unc.edu">cquammen@cs.unc.edu</a>> wrote:<br>
>>><br>
>>> +1 if you remove the constructors/destructor declarations.<br>
>>><br>
>>> Cory<br>
>>><br>
>>> On Thu, Sep 13, 2012 at 11:33 AM, Patchett, John M <<a href="mailto:patchett@lanl.gov">patchett@lanl.gov</a>><br>
>>> wrote:<br>
>>> > Though I don't usually involve myself in VTK development, I think<br>
>>> > that obfuscated understandability is part of the reason that I've seen<br>
>>> > a large number of otherwise bright developers (students) become<br>
>>> > integration impotent when asked to put their ideas/code in<br>
>>> > VTK/ParaView...<br>
>>> > If a goal is to have contributors, this is a bad idea.<br>
>>> ><br>
>>> ><br>
>>> > --John.<br>
>>> ><br>
>>> ><br>
>>> > On 9/13/12 9:22 AM, "Marcus D. Hanwell" <<a href="mailto:marcus.hanwell@kitware.com">marcus.hanwell@kitware.com</a>><br>
>>> > wrote:<br>
>>> ><br>
>>> >>On Thu, Sep 13, 2012 at 11:07 AM, Utkarsh Ayachit<br>
>>> >><<a href="mailto:utkarsh.ayachit@kitware.com">utkarsh.ayachit@kitware.com</a>> wrote:<br>
>>> >>>> I am in favor of adding the macro, and disagree with Utkarsh in that<br>
>>> >>>> we already have the type macro etc and it will remove the need for a<br>
>>> >>>> lot of boiler plate code in each class declaration.<br>
>>> >>><br>
>>> >>> Note  that vtkTypeMacro() doesn't force you to add anything in the cxx<br>
>>> >>> file. You can pretty much not know what that macro does and you're<br>
>>> >>> okay. Not so with this macro. Also hiding constructor/destructor is<br>
>>> >>> really weird to me. Why would you? I don't think I am thrilled by<br>
>>> >>> having to implement function definitions without seeing their<br>
>>> >>> declarations in the header. None of the existing macros do that, not<br>
>>> >>> even in Qt, as far as I know. Readability of code is far more<br>
>>> >>> important that saving typing a few more lines, IMHO.<br>
>>> >>><br>
>>> >>I can see your point with the contructor/desctructor. Even with them<br>
>>> >>removed I still think this macro would be very useful.<br>
>>> >><br>
>>> >>Marcus<br>
>>> >>_______________________________________________<br>
>>> >>Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>>> >><br>
>>> >>Visit other Kitware open-source projects at<br>
>>> >><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>>> >><br>
>>> >>Follow this link to subscribe/unsubscribe:<br>
>>> >><a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
>>> >><br>
>>> ><br>
>>> > _______________________________________________<br>
>>> > Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>>> ><br>
>>> > Visit other Kitware open-source projects at<br>
>>> > <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>>> ><br>
>>> > Follow this link to subscribe/unsubscribe:<br>
>>> > <a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
>>> ><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> Cory Quammen<br>
>>> Research Associate<br>
>>> Department of Computer Science<br>
>>> The University of North Carolina at Chapel Hill<br>
>>> _______________________________________________<br>
>>> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>>><br>
>>> Visit other Kitware open-source projects at<br>
>>> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>>><br>
>>> Follow this link to subscribe/unsubscribe:<br>
>>> <a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
>>><br>
>><br>
>><br>
>><br>
>> --<br>
>> | Aashish Chaudhary<br>
>> | R&D Engineer<br>
>> | Kitware Inc.<br>
>> | <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>><br>
>> _______________________________________________<br>
>> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>><br>
>> Visit other Kitware open-source projects at<br>
>> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>><br>
>> Follow this link to subscribe/unsubscribe:<br>
>> <a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
>><br>
>><br>
> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>| Aashish Chaudhary <br>| R&D Engineer         <br>| Kitware Inc.            <br>| <a href="http://www.kitware.com">www.kitware.com</a>    <br>

</div>