v2.4.0
Value handling improvement
Aligned argument value setting to use direct value_type object initialization from std::string values if possible (arguments, the value type of which cannot be constructed from std::string will use the istream>> operator as in previous versions)
NOTE: This fixes the issue, where passing a mulit-word optional argument's value, e.g.
./program --option "single value with spaces"
would result in storing only the first word of the value ("single" in this case)
Unknown flag handling alignment
In previous versions a command-line argument prefixed with -- or - and a value that did not match any of the specified arguments, it was treated as a value token. Currently a parsing_failre exception is thrown for such unknown argument flags by default, but the behavior can be changed to what it was in the previous versions by using the AP_UNKNOWN_FLAGS_AS_VALUES macro.
Other
- Modified the test building to compile each test file into a separate executable registered with CTest
- Corrected the argument value type requirements description in the tutorial document - previously the
std::ostream& operator<<was used in the description instead ofstd::istream& operator>>