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;
};
};
+template <typename T>
+class ACTION_CLONE_MIXIN : public ACTION
+{
+ public:
+ virtual ACTION * Clone() const { return new T(*this); }
+};
+
} // namespace SGCONF
#endif