std::vector<T *> nodes;
public:
- const std::vector<T *> &apply(Stage &s) { visit(s.content); return nodes; }
+ const std::vector<T *> &apply(Stage &s) { nodes.clear(); visit(s.content); return nodes; }
private:
using TraversingVisitor::visit;
{
private:
Stage *stage;
- std::set<Node *> to_remove;
+ const std::set<Node *> *to_remove;
public:
- NodeRemover(const std::set<Node *> &);
+ NodeRemover();
- void apply(Stage &);
+ void apply(Stage &, const std::set<Node *> &);
private:
using TraversingVisitor::visit;