X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/0c109e9e61ae3624f30621b5fd328f354bfa6524..43fff4a2cf7da8c3a5c24633d998bf52f9cf12a2:/projects/sgconf/action.h diff --git a/projects/sgconf/action.h b/projects/sgconf/action.h index 469d7460..64d7c1e8 100644 --- a/projects/sgconf/action.h +++ b/projects/sgconf/action.h @@ -35,6 +35,7 @@ class ACTION public: virtual ~ACTION() {} + virtual ACTION * Clone() const = 0; virtual std::string ParamDescription() const = 0; virtual std::string DefaultDescription() const = 0; virtual OPTION_BLOCK & Suboptions() = 0; @@ -48,6 +49,13 @@ class ACTION }; }; +template +class ACTION_CLONE_MIXIN : public ACTION +{ + public: + virtual ACTION * Clone() const { return new T(*this); } +}; + } // namespace SGCONF #endif