#pragma once #include #include namespace commandline { class Parser; /* Note, this class and all it's derivatives store the validated results for caching. This means that unlike the * regular QCommandLineOption it is _not_ idempotent! */ class Option: public QCommandLineOption { public: Option(const QString &name, const QString &description = QString(), const QString &valueName = QString(), const QString &defaultValue = QString() ); Option(const QStringList &names, const QString &description = QString(), const QString &valueName = QString(), const QString &defaultValue = QString() ); Option(const QCommandLineOption &other); virtual bool validate(Parser &parser, QString &value); QString name() const; QString getError() const; QString value(Parser &parser) const; const char* getCString(Parser &parser) const; virtual ~Option(); protected: QString _error; }; }