#pragma once #include #include #include #include class CommandLineArgs { public: CommandLineArgs(); static std::unique_ptr Create(); std::filesystem::path getLaunchPath(); std::size_t getNumberOfArgs() const; std::string getArg(std::size_t index) const; void process(int argc, char *argv[]); void process(const std::vector& args); void recordLaunchPath(); std::vector getUserArgs() const; static void initialize(CommandLineArgs* args); private: std::vector mArugments; std::filesystem::path mLaunchPath; }; using CommandLineArgsUPtr = std::unique_ptr;