ReferenceVisitor(size_t num_groups, const flat_set<string> &targets)
: num_ids(num_groups), names(targets) {}
- ~ReferenceVisitor();
+ ~ReferenceVisitor() override;
void invalid_index(const char *component, unsigned id) {
assert(component);
class PrefilterVisitor : public DefaultComponentVisitor {
public:
PrefilterVisitor(Component *c, const ParseMode &m) : root(c), mode(m) {}
- ~PrefilterVisitor();
+ ~PrefilterVisitor() override;
/** \brief Calls the visitor (recursively) on a new replacement component
* we've just created. Takes care of freeing it if the sequence is itself
*/
class ConstructLiteralVisitor : public ConstComponentVisitor {
public:
- ~ConstructLiteralVisitor();
+ ~ConstructLiteralVisitor() override;
/** \brief Thrown if this component does not represent a literal. */
struct NotLiteral {};
* an unsupported component. */
class UnsupportedVisitor : public DefaultConstComponentVisitor {
public:
- ~UnsupportedVisitor();
+ ~UnsupportedVisitor() override;
void pre(const ComponentAssertion &) override {
throw ParseError("Zero-width assertions are not supported.");
}