initial commit

This commit is contained in:
ackimixs
2024-05-19 10:59:13 +02:00
commit 3131766c92
14 changed files with 563 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
#pragma once
#include <map>
#include <optional>
#include <string>
class CLParser {
public:
CLParser(int argc, char** argv);
CLParser(const CLParser& other);
[[nodiscard]] bool hasOption(const std::string& option) const;
[[nodiscard]] std::optional<std::string> getOption(const std::string& option) const;
[[nodiscard]] std::string getOption(const std::string& option, const std::string& defaultValue) const;
[[nodiscard]] bool hasPositionalArgument(int index) const;
[[nodiscard]] std::string getPositionalArgument(int index) const;
[[nodiscard]] int positionalArgumentsCount() const;
~CLParser();
private:
std::string* _argv;
int _argc;
std::map<std::string, std::string> _options;
};