diff --git a/src/cxxopts.hpp b/src/cxxopts.hpp index d0057a9..a081599 100644 --- a/src/cxxopts.hpp +++ b/src/cxxopts.hpp @@ -683,6 +683,12 @@ namespace cxxopts std::string help(const std::vector& groups = {""}) const; + const std::vector + groups() const; + + const HelpGroupDetails& + group_help(const std::string& group) const; + private: inline @@ -1251,5 +1257,25 @@ Options::help(const std::vector& groups) const return toUTF8String(result); } +const std::vector +Options::groups() const +{ + std::vector g; + + std::transform( + m_help.begin(), + m_help.end(), + std::back_inserter(g), + [](const std::map::value_type& pair){return pair.first;}); + + return g; +} + +const HelpGroupDetails& +Options::group_help(const std::string& group) const +{ + return m_help.at(group); +} + } #endif //CXX_OPTS_HPP