On Fri, May 31, 2013 at 07:46:44AM +0100, Garth N. Wells wrote:
> On 29 May 2013 12:29, Anders Logg <[email protected]> wrote:
> > On Wed, May 29, 2013 at 12:00:49PM +0100, Garth N. Wells wrote:
> >> The MeshFunction class has a lot of constructors. This roughly doubled
> >> recently with the switch to using shared pointers for the mesh (now
> >> ~10 constructors).
> >>
> >> What are the opinions on having duplicate reference/shared_ptr
> >> constructors in MeshFunction? Should we just have shared_ptr versions?
> >> This only affects the C++ interface. The Python interface uses the
> >> shared_ptr version (but does requires the other constructors being
> >> marked in the SWIG layer as to be ignored, which is easy to forget).
> >
> > I see the motivation (to reduce the number of duplicate constructors)
> > but I still think one should be able to write a simple C++ demo
> > program without using boost::shared_ptr.
> >
> > Is there some other solution? Could one add a cast function to the
> > Mesh class, something like this:
> >
> > operator boost::shared_ptr<Mesh>()
> > { return reference_to_no_delete_pointer(*this); }
> >
>
> I wouldn't advocate this solution - the function signature would lead
> a user to believe that memory management is robust, and an opaque
> magic conversion layer would alter this.
>
> How about only having reference versions for the higher level
> constructors only, e.g. those that appear in demos.

Sounds good.

--
Anders
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to