aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules4
-rw-r--r--Makefile3
-rw-r--r--args.hxx18
m---------pages0
4 files changed, 12 insertions, 13 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..3386d8f
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "pages"]
+ path = pages
+ url = github.com:Taywee/args.git
+ branch = gh-pages
diff --git a/Makefile b/Makefile
index 1120329..9242807 100644
--- a/Makefile
+++ b/Makefile
@@ -46,8 +46,9 @@ clean:
rm -rv $(EXECUTABLE) $(OBJECTS) $(DEPENDENCIES) doc
pages:
+ -rm -r pages/*
doxygen Doxyfile
- cp -rv doc/html/* .
+ cp -rv doc/html/* pages/
doc/man:
doxygen Doxyfile
diff --git a/args.hxx b/args.hxx
index 39fbdea..f2a45b9 100644
--- a/args.hxx
+++ b/args.hxx
@@ -585,7 +585,9 @@ namespace args
std::function<bool(const Group &)> validator;
public:
+ /// If help is empty, this group will not be printed in help output
Group(const std::string &help = std::string(), const std::function<bool(const Group &)> &validator = Validators::DontCare) : Base(help), validator(validator) {}
+ /// If help is empty, this group will not be printed in help output
Group(Group &group, const std::string &help = std::string(), const std::function<bool(const Group &)> &validator = Validators::DontCare) : Base(help), validator(validator)
{
group.Add(*this);
@@ -673,7 +675,7 @@ namespace args
/** Get all this group's children
*/
- const std::vector<Base *> Children() const
+ const std::vector<Base *> &Children() const
{
return children;
}
@@ -813,17 +815,9 @@ namespace args
static bool AllChildGroups(const Group &group)
{
- for (const auto child: group.Children())
- {
- if (const auto group = dynamic_cast<Group *>(child))
- {
- if (!group->Matched())
- {
- return false;
- }
- }
- }
- return true;
+ return std::find_if(std::begin(group.Children()), std::end(group.Children()), [](const Base* child) -> bool {
+ return dynamic_cast<const Group *>(child) && !child->Matched();
+ }) == std::end(group.Children());
}
static bool DontCare(const Group &group)
diff --git a/pages b/pages
new file mode 160000
+Subproject 7d3fe5fa0a244947faf0e0307bb493f68d09d8d