X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=c%2B%2B0x%2Fxml-template.h;h=8f3d69b19257e3ae85e0d4f57163b39597277c30;hb=34c73f84835f00b960b1bde0aca69588230791a4;hp=afd688a6a6dc0e76c8f9fda48a553db4fa3b4191;hpb=4c1b8f968fe31be2528b49ab8ad956e79b8617f5;p=xml-template diff --git a/c++0x/xml-template.h b/c++0x/xml-template.h index afd688a..8f3d69b 100644 --- a/c++0x/xml-template.h +++ b/c++0x/xml-template.h @@ -10,6 +10,7 @@ class Directive { public: + virtual ~Directive(); virtual void process(xmlNode *node, bool clean) = 0; }; @@ -25,6 +26,8 @@ class Replace : public Directive { class Clone : public Directive { public: Clone(const std::vector &subdirectives); + Clone(std::initializer_list subdirectives); + ~Clone(); virtual void process(xmlNode *node, bool clean); private: @@ -34,11 +37,13 @@ class Clone : public Directive { class Substitute : public Directive { public: Substitute(const std::unordered_map &substitution_map); + Substitute(std::initializer_list> substitution_map); + ~Substitute(); virtual void process(xmlNode *node, bool clean); private: - const std::unordered_map &substitution_map; + const std::unordered_map substitution_map; }; void process_file(const std::string &input_filename,