diff --git a/src/cxxopts.cpp b/src/cxxopts.cpp index 9768655..97ddc56 100644 --- a/src/cxxopts.cpp +++ b/src/cxxopts.cpp @@ -396,7 +396,8 @@ Options::help() const size_t longest = 0; - std::string result; + std::string result = "Usage:\n " + m_program + " [OPTION...] " + + m_help_string + "\n\n"; for (const auto& o : group->second) { diff --git a/src/cxxopts.hpp b/src/cxxopts.hpp index 0723e61..1b100d0 100644 --- a/src/cxxopts.hpp +++ b/src/cxxopts.hpp @@ -329,6 +329,12 @@ namespace cxxopts { public: + Options(std::string program, std::string help_string = "") + : m_program(std::move(program)) + , m_help_string(std::move(help_string)) + { + } + void parse(int& argc, char**& argv); @@ -410,6 +416,9 @@ namespace cxxopts const std::string& name ); + std::string m_program; + std::string m_help_string; + std::map> m_options; std::string m_positional; diff --git a/src/example.cpp b/src/example.cpp index fc18c1c..bce79fb 100644 --- a/src/example.cpp +++ b/src/example.cpp @@ -31,7 +31,7 @@ int main(int argc, char* argv[]) try { - cxxopts::Options options; + cxxopts::Options options(argv[0]); options.add_options() ("a,apple", "an apple")