Boost logo

Boost :

Subject: Re: [boost] Adding polymorphic_value to boost
From: Peter Dimov (lists_at_[hidden])
Date: 2017-11-20 16:57:36

Jonathan Coe wrote:

> The pointer constructor is needed in migration paths from class
> heirarchies with a `Clone()` method. It also allows one to support objects
> coming from C_APIs.


    X* create(...);
    X* copy( X const* );
    void destroy( X* );

is appropriate for a cloning pointer, but hasn't really much to do with
polymorphic values.

    struct Shape
        virtual ~Shape() = default;
        Shape* clone() const = 0;
        void draw() = 0;

    Shape* createCircle( int r );

is admittedly less clear-cut.

Looking at my old code, what I did was supply both a cloning pointer (U*)
and a polymorphic value (U&&) types, the latter a simple wrapper over the

Boost list run by bdawes at, gregod at, cpdaniel at, john at