diff options
author | jarro2783 <jarro.2783@gmail.com> | 2015-09-28 05:53:26 +0300 |
---|---|---|
committer | jarro2783 <jarro.2783@gmail.com> | 2015-09-28 05:53:26 +0300 |
commit | 7d49500f54b81b58357313515701c6454d9449bc (patch) | |
tree | 3bf12c9f8026fc8ff94b142e087a7fc5a9f9ef77 /README.md | |
parent | 4b6cae9b8f14fb51455cd717cfb80cdc4d72ee4f (diff) |
Rename README to README.md
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e8a855 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +== Quick start == + +This is a lightweight C++ option parser library, supporting the standard GNU +style syntax for options. + +Options can be given as: + + --long + --long=argument + --long argument + -a + -ab + -abc argument + +where c takes an argument, but a and b do not. + +How to use: + + #include <cxxopts.hpp> + +Create a cxxopts::Options instance. + + cxxopts::Options options; + +Then use add_options. + + options.add_options() + ("d,debug", "Enable debugging") + ("f,file", "File name", cxxopts::value<std::string>()) + +Options can be declared with a short and/or long option. A description must be +provided. The third argument is the value, if omitted it is boolean. Any type +can be given as long as it can be parsed, with operator>>. + +To parse the command line do: + + options.parse(argc, argv); + +To retrieve an option use options.count("option") to get the number of times +it appeared, and + + options["opt"].as<type>() + +to get its value. If "opt" doesn't exist, or isn't of the right type, then an +exception will be thrown. + +=== Positional Arguments === + +Positional arguments can be optionally parsed into one or more options. To set up positional arguments, call + + options.parse_positional({"first", "second", "last"}) + +where "last" should be the name of an option with a container type, and the others should have a single value. + +== Linking == + +This is a header only library. + +== Requirements == + +The only build requirement is a C++ compiler that supports C++11 regular +expressions. For example GCC >= 4.9 or clang with libc++. + + +== TODO list == + +* Allow unrecognised options. +* Various help strings. +* Unicode aware for help strings. |