#pragma once #include #include #include class AParams { public: virtual bool isIgnoringUnicode() const =0; virtual bool isStrict() const =0; }; class Params: public AParams { public: Params(int ac, char **av); virtual ~Params(); std::basic_istream &getInput() const; bool isValid() const; bool isStrict() const; bool colorEnabled() const; static void usage(const std::string &) noexcept; const std::string &getProgName() const; bool isIgnoringUnicode() const; private: std::basic_istream *input; const std::string progName; std::list params; bool ignoreUnicode; bool colorMode; bool strict; };