ProgramOptions.hxx Versions Save

Single-header program options parsing library for C++11

v1.0.0

4 years ago

Improvements

  • :warning: Breaking: retire the PROGRAMOPTIONS_SILENT macro and instead offer the member functions .silent(), .is_silent(), .verbose(...), .is_verbose() (57dd5fe792dfc0bdae747225a734a48c1a89783a)
  • :warning: Breaking: replace the PROGRAMOPTIONS_NO_EXCEPTIONS macro by PROGRAMOPTIONS_EXCEPTIONS; instead of opting-out of exception-based precondition checking, you now have to opt-in (cdc6b119b79c59377014f504203b8eac19b0456b)
  • :warning: Breaking: move the file ProgramOptions.hxx to the include directory (e82a49b5dbe39d25d0fc7f201e9aaafec070d617)
  • Add .bind to bind an option to a variable (5bcf23a9735a41536a9573304082d49e6a57da8f)
  • Preserve the order in which the options have been defined in the help screen (cd56dbd74039cd716b34e9b63b9d36101dacc769)
  • Add print_data function to print the parsed data inside the parser in a human readable format (f59c10748402e1ab17d790fd3f80f3dffdd14759)
  • Add print_help function as a more expressive alternative to operator<< (6f51cc168eec8f8be403ab0b0368a976def05297)
  • Make .bind_container work with more containers (9ef95e9005bc18c48269bcc4479ced5a63c5644b)
  • Improve readme and examples (c4cc13746ef97d7f900b41fbb031fb52bd725510, 943e967c1b845a41c03aaaba6549703e8738b890, bb92550707fa0709a1b838d87c943694e4eca877, d62b574202453815a8287fdaf768661651b9ec3e, 27b6ec6948cede6c95dccc4e89b32df2e8b565fc, a8ae1b869634b7c99b125c5f1b223370d282a532, f4b68c00ffecb9af8d8287e5e3f5939f9f47fd5b, 1657f93ae91dbad106200ba6aa0a3cea20bcf5d2, 71cc491f576bc163bdbb67e5a53ce74a6bffecd8, 5a9445d6f668d387f13e4ae6b2b715786fb4176e, 876fbe169387a9f31f26f9edf27826b1a28e2beb)
  • Improve CMakeLists and make ProgramOptions a linkable target in CMake (8dde8546c3f36831c9b8cae9d991cac57b58b167, 13f95d0f989b9e5c9198d6b46d1ba221cbffb49f)
  • Change details about the help screen (cf2b0ea4a3e017ea71b58ffc91d69e57d63a8fbb)
  • Improve assertions and make them more lenient (5b7eeb2780edab4b272f917124121436170fd92a)
  • Use git submodules (38f02827b2d57059ab0f2e75272fcfb849e1d752)
  • Various code improvements

Fixes

  • Fixed a case where certain user inputs caused an assertion to be triggered (3ec92cc545e41051009952e84de89a3f8937fe0c)
  • Fixed undefined behavior in certain edge cases in str2flt and str2int (cf8da88fe342c0e351d90d00c6029c108d3f1a14, ac8e92fbc7233a4845ca31ca41bd1737ca33ce0f)
  • Fixed various warnings (8d409fb4c4c79a8e8c05907d75bf0beaabab2c25, bbf21c0592ddecf7f874f9973e1851d55496c6db, ea19c7197070db811982c2a991b9be8336b0d909, 850d4d6d9671d83e622e38c7f18a85e2f77a121c)
  • Provide a workaround for libc++'s incorrect std::isnan implementation (0e645cf6a37b29677191e39a1281c9a8214fac60)
  • Provide a workaround for GCC 4.8 (be2fc7552eac83e766a00a4963b841d5daf3723d)

v0.1.0

7 years ago

First stable release