Thanks for the clarification. For some reason I completely missed the validate call in CmdLine::parse, now that I see the usage, things make sense. Other than the missing "AllOf" and "AnyOf" implemenations (along with related tests), is there anything else that needs to be completed before merging with the master branch?
I want to help contribute to arggroup so it can be merged with the master branch but I don't believe I currently understand the intended behavior of ArgGroup:validate. Hopefully I can get some clarification on the following: Why is ArgGroup::validate taking a vector of names as apposed to iterating over the internal list directly? If _required is false then the return value is always false. However, I think this behavior maybe wrong for EitherOf, or am I missing something?
The ArgGroup class concept looks like it would address my needs. However, I'm confused by the implemenation of ArgGroup::validate. I'll open a discussion topic related to this (since this is off topic for the merge request).
Added Sourcetrail files to .gitignore
Change in xorAdd behavior to allow optional arguments
Added two new tests to cover the cases were optional xor args are
Changed the behavior of the XorHandler so that Args are no longer