From: Peter V. <Pet...@es...> - 2002-12-01 21:26:15
|
Is this change: FROM: vdgl_digital_curve(vsol_point_2d_sptr& p0, vsol_point_2d_sptr& p1); TO: vdgl_digital_curve(vsol_point_2d& p0, vsol_point_2d& p1); a good idea? I thought the general rule-of-thumb was to pass around only smart pointers? Peter. |
From: Andrew F. <aw...@ro...> - 2002-12-02 10:17:00
|
> -----Original Message----- > From: vxl...@li... > [mailto:vxl...@li...] On > Behalf Of Peter Vanroose > Sent: 01 December 2002 21:26 > To: mu...@us... > Cc: vxl...@li... > Subject: [Vxl-maintainers] Re: last change to vdgl_digital_curve > > > Is this change: > FROM: vdgl_digital_curve(vsol_point_2d_sptr& p0, > vsol_point_2d_sptr& p1); > TO: vdgl_digital_curve(vsol_point_2d& p0, vsol_point_2d& p1); > a good idea? > I thought the general rule-of-thumb was to pass around only > smart pointers? The rule, if there is any, is to *return* only smart pointers. I cannot speak for this change *without more information*, which is exactly why such a "rule" cannot be used as justification for considering the change a bad one. A. |
From: Peter V. <Pet...@es...> - 2002-12-02 10:32:19
|
> The rule, if there is any, is to *return* only smart pointers. OK. |
From: Joseph M. <mu...@le...> - 2002-12-02 13:20:15
|
There are a number of existing prototypes: From vsol_line_2d: explicit vsol_line_2d(const vsol_point_2d_sptr &new_p0, const vsol_point_2d_sptr &new_p1); //---------------------------------------------------------------------- ----- //: Constructor from two vgl_point_2d (end points) //---------------------------------------------------------------------- ----- vsol_line_2d(vgl_point_2d<double> const& p0, vgl_point_2d<double> const& p1); From vtol_edge_2d: explicit vtol_edge_2d(vtol_vertex_2d &new_v1, vtol_vertex_2d &new_v2, const vsol_curve_2d_sptr &new_curve=0); In the case of the line constructor with vgl points, one can argue that the vgl structures are light enough to pass the class itself (or refs to the class) around. For vsol and vtol the instances are always constructed on the heap and assigned to a smart pointer. The change I made was motivated by vtol, but since a digital curve is a curve I should probably follow the line prototype. I will change it back. However, this issue calls into question the vtol interface. It is inconsistent on the face of it (no pun intended) using references for the vertex args and a smart pointer for the curve. Perhaps Peter Tu can comment on the design choice. Joe -----Original Message----- From: vxl...@li... [mailto:vxl...@li...] On Behalf Of Peter Vanroose Sent: Monday, December 02, 2002 5:32 AM To: Andrew Fitzgibbon Cc: mu...@us...; vxl...@li... Subject: RE: [Vxl-maintainers] Re: last change to vdgl_digital_curve > The rule, if there is any, is to *return* only smart pointers. OK. ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Vxl-maintainers mailing list Vxl...@li... https://lists.sourceforge.net/lists/listinfo/vxl-maintainers |