This is useful so we can at least check that it compiles on
Windows. We don't bother fixing the tests or testing infra (as has
been done in 1.4 branch) as we expect most development to happen
there. The CMake files will not be included in the distrubution and
are used for development/testing only.
User is not allowed to provide a NULL constraint to the various ARG
constructors. This patch makes sure the Constraint is not NULL before
dereferencing and raises a logic_error if it is NULL.
Also included the two new tests test88 and test89 in runtests script.
Make all types have ValueLike traits by default.
This allows new types to be added without any fuzz (no need to specify
the traits) if it has operator>>. It also removes the need to manually
specify the ArgTrait for all built in types (such as long, bool, char,
float etc).
ArgTraits now works in the following way:
1) If there exists a specialization of ArgTraits for type X, use it.
2) If no specialization exists but X has the typename
X::ValueCategory, use the specialization for X::ValueCategory.
3) If neither (1) nor (2) defines the trait, use the default which is
ValueLike.
Conflicts:
examples/Makefile.am
examples/test24.cpp
tests/Makefile.am
tests/runtests.sh
tests/test83.out
tests/test83.sh
This allows new types to be added without any fuzz (no need to specify
the traits) if it has operator>>. It also removes the need to manually
specify the ArgTrait for all built in types (such as long, bool, char,
float etc).
ArgTraits now works in the following way:
1) If there exists a specialization of ArgTraits for type X, use it.
2) If no specialization exists but X has the typename
X::ValueCategory, use the specialization for X::ValueCategory.
3) If neither (1) nor (2) defines the trait, use the default which is
ValueLike.
This allows exceptions for parse errors to be propagated to the caller. Exiting
the program in parse is a bad idea generally, as we have no way of knowing what
cleanup needs to be done in the main program.
easier to make you own classes, and types defined in the standard
library work well with tclap. I'll try to write up some documenation
of how to achieve this as-well.