You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor creation/cloning of output_t and derived classes
These were a bit of a mess. Now the implementations of the derived
classes are more similar and a bit simpler.
We'll use the "rule of five" in output_t and derived classes, so copy
and move constructors and operators as well as (virtual) destructor
are all spelled out.
As far as possible constructors etc. are made private/protected. We only
ever create those classes though the create_output() function or the
clone() function. But we are using std::make_shared() internally so some
constructors need to be public because, while conceptually the objects
are created from inside the class itself, it is the make_shared function
that actually does this and it can only use the public interface.
0 commit comments