profile
viewpoint
Zach Laine tzlaine Austin, TX C++ Committee Member, Boost Author, Regular C++Now Attendee

boostorg/yap 95

A C++14-and-later expression template library

boostorg/stl_interfaces 55

A C++14 and later CRTP template for defining iterators

sg16-unicode/sg16 28

SG16 overview and general information

tahonermann/std-text-wg 3

Informal C++ standards text working group (now SG16 - https://github.com/sg16-unicode)

tzlaine/Beast 3

HTTP and WebSocket built on Boost.Asio in C++11

tzlaine/cxxnow_2017_yap_talk 1

Files supporting YAP talk at C++Now 2017

tzlaine/2007_presentations 0

Presentation materials used at BoostCon 2007

tzlaine/2008_presentations 0

Presentation materials used at BoostCon 2008

tzlaine/2009_presentations 0

Slides and other resources from BoostCon 2009

tzlaine/2010_presentations 0

Presentation links and materials for BoostCon 2010

issue commenttzlaine/program_options_2

Consider changing the type of std::string_view options to std::string when inserting into a map<string, any>.

This approach may also benefit from having some sort of accessor function that knows how to cast the any to a string and return a string_view, so that the user can always ask for string views.

tzlaine

comment created time in 3 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 41f2d9fef785d0f775cccff9b318526ad19bc089

arg_iter -> detail::arg_iter

view details

push time in 3 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 622a2057f8c6bcaa6035f5770f443f5a08f8dc99

Fix remaining errors in response file saving and loading.

view details

push time in 3 days

push eventtzlaine/text

Zach Laine

commit sha b576f19c2643ac1b08080844fa6044df6939c5c7

Replace the hand-rolled detection code with the detection code from Boost.TypeTraits.

view details

push time in 4 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 91b452b458c9c18c1c18bc0a3763cc9905e08c44

Use the detection templates from Boost.TypeTraits instead of the hand-rolled ones. Fixes #3.

view details

push time in 4 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 9dc3349342da78c4e3801801d2556611f8f2eeb2

Add support for #-comments in response files and JSON files. Fixes #2.

view details

push time in 4 days

push eventtzlaine/program_options_2

Zach Laine

commit sha b25d22f24df6ea7f34bdc5954084409ed317b6a5

Add initial sketch of JSON saving and loading.

view details

Zach Laine

commit sha 2fdb04b1397d3543eb516f247dd6a889ca19f9d6

Fix several errors revealed by the JSON save/load testing: - Change the way the reused strings are stored by types in arg_view.hpp. Specifically, move them from the iterators to the views to make the addresses of their contents stable. - Change options_map to allow maps from strings or string_views to an erased type. The string versions are very important when parsing an arg-view that producces string_views of a single reused string. - Replace any_map with string_any_map and string_view_any_map. - In parse_options_into(), make a copy of arg-0 into a local string, to prevent dangling when the arg-view produces string_views of a single reused string. - When saving a response file, quote any value x for which std::quoted(x) is well-formed. - When loading JSON that is ill-formed, stick the error generated by the parser into the exception.

view details

Zach Laine

commit sha 9c183fce755f404ad070f712999e09e6f573e393

Remove unwanted leading space when saving maps as response files.

view details

Zach Laine

commit sha 412dd85fff151e5f4ef0d0be78ee389dc764a46f

Cruft removal.

view details

Zach Laine

commit sha d34d2ec6f34f4a8f21697811922a977338718336

Fix counting of positionals when response files are in play. Fixes #4.

view details

Zach Laine

commit sha da3881724f3209cadf33268365c70c829afb7b71

Add support for string instead of string_view as an option type. This is necessary when using remainder() and loading from a file.

view details

Zach Laine

commit sha 26aa845b28f8113936c035c1666f8d455cdc36f9

Replace the deletion of the nullary tag_invoke() in tag_invoke.hpp. Apparently, the deletion exercises a GCC bug.

view details

push time in 4 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 218104863202d9d4ad69433be6e2a0da5e2328c7

Add tests for {save,load}_response_file(); fix errors. A couple of errors remain; they're marked in the test file.

view details

push time in 6 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 3f67df675832f86dcb6052478590a3d6c9e29f9a

Change these things, in order to support parsing command lines into a generic map type, rather than std::map<std::string_view, boost::any>: - Add tag_invoke.hpp, and use the tag_invoke approach described in P1895R0 to implement a pair of customization points: one for determining of an erased type is empty, and another for casting an erased type to an arbitrary type. - options_map -> any_map, and create a options_map conccept that constrains the new OptionsMap template parameter to the map overlaods of parse_command_line. - Add tests of the new generic options map, using boost::any, std::any, and a custom erased type.

view details

push time in 6 days

push eventtzlaine/program_options_2

Zach Laine

commit sha b637e156c687205a5d52433ca40e0ea05f204978

Add parse_command_line() overloads for options_maps; add tests; fix errors.

view details

push time in 6 days

push eventtzlaine/program_options_2

Zach Laine

commit sha f314ab29736f22a5b59b53854a06a81cd273e283

Add help text describing response files and the smenatics of @; disable @ when the customization string describing response files is empty.

view details

Zach Laine

commit sha f73df1123167f4e73d6a4dab3e8f6ed48b4d040f

Small refactors ahead of saving/loading options to/from storage.

view details

Zach Laine

commit sha 7b8815ed28a9bcc9758d28f787fce31be4dc0054

Create a deserializing mode for parsing args. This allows args from response files and other places to be read without: stopping to print help or version strings; exiting on errors; and treating an incomplete set of positional args as an error.

view details

Zach Laine

commit sha 1b09b79192ca9fee210822fe7a154e67705cf813

Numerous changes to generalize parsing from always-into-tuples to into-tuples-or-std::maps. No functional change to the tuple path.

view details

Zach Laine

commit sha 2818efe00ae1957c95771de415611ab8c2bc64c9

Initial sketch of functions to load/save response files.

view details

push time in 7 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 2e3bff515d612639df3e26d25f0c0ac49f804f73

Finish the parse_command_line() tests; more fixes.

view details

Zach Laine

commit sha d78596560abed560ec34035888b6b3802425b68b

Add detail::response_file_arg_view.

view details

Zach Laine

commit sha e5ec45fed95252ae4f522b2b3d747bb6daa4d845

Add response_file() and response file handling in the parse.

view details

push time in 8 days

push eventtzlaine/parser

Zach Laine

commit sha 095aa362d777a480fffef415d27d214cd6ffec4a

Fix Clang builds.

view details

push time in 8 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 037ec22c575bce770fadd575b35f523bd13f8e0b

More parse_command_line() tests, and more fixes.

view details

push time in 9 days

issue closedtzlaine/parser

Reduce dependencies

closed time in 9 days

tzlaine

issue commenttzlaine/parser

Reduce dependencies

Done.

tzlaine

comment created time in 9 days

issue openedtzlaine/program_options_2

Add support for custom parsers.

created time in 9 days

push eventtzlaine/program_options_2

Zach Laine

commit sha a41601bd4f5fab451590a7320e92279caf2704ec

Disallow with_default() on positionals.

view details

Zach Laine

commit sha 1e785f9f9d4e92fe1f18a505758213703c18dbe5

Add parse_command_line() tests with positionals; fix errrors.

view details

push time in 9 days

push eventtzlaine/parser

Zach Laine

commit sha 8d976d31df3f5664cea561acbd4f03dda78d22fd

Fix Clang build on Linux.

view details

push time in 9 days

push eventtzlaine/parser

Zach Laine

commit sha 1ed37641e904e1f83f86765634c0f1440f20951e

Remove dependency on the Spirit headers, via extensive copy/pasta.

view details

Zach Laine

commit sha 113270d6f6d05f1a253c91de80bd2b38ef3ebe7f

Remove dependency on Boost.Any.

view details

Zach Laine

commit sha 675fcd2309a707e997e886a7d758e0440398a71c

Make dependency on Boost.TypeIndex optional.

view details

Zach Laine

commit sha 5bed6f9776710fc2b0af9366e7165ffbc400f3c3

Make dependency on Boost.Preprocessor optional.

view details

Zach Laine

commit sha c2882987138d870993268a230455f341af947d69

Remove dependencies on Boost.Optional, Boost.Algorithm, and Boost.ThrowException.

view details

Zach Laine

commit sha c8b5554fa37f99164d34595e8f42044e379b5302

Remove several Boost submodules from the clone list in the cmake/dependencies.cmake.

view details

Zach Laine

commit sha 111efe1eb32dcc562ee1abe9cacc4fe69c6b4e4e

Fully internalize Boost.Text headers.

view details

Zach Laine

commit sha f173196885a300620c7576e6a2223008f2d6cac0

Fully internalize Boost.STLInterfacecs headers.

view details

Zach Laine

commit sha 969de5c23d96617c17a2543c89935ed4c629ad46

Move all the text and stl_interface internal header code into boost::parser::detail namespace.

view details

Zach Laine

commit sha 4b415e0856fdaf206287df0daecb4d5c093155bf

Cruft removal.

view details

Zach Laine

commit sha df8d20838e94909bdaf4f9f28bf42c31b14213ce

Create Boost.Hana lite.

view details

Zach Laine

commit sha c1205a419d031e2a1e211f9478dcaf1d030ca5d3

Convert from Boost.Hana to Hana lite, part 1: introduce a template alias for tuple, and use it throughout the code.

view details

Zach Laine

commit sha 71c697d23d683746f4b4537d2eaf85301388ca73

Convert from Boost.Hana to Hana lite, part 2: introduce a template aliases for constants like llong; provide a tuple accessor get(); use these throughout the code. Also, adapt the code in detail/hl.hpp to work with hana::tuple and std::tuple.

view details

Zach Laine

commit sha 7f45618fe16b759503dc3f807f0c166e1d22813c

Convert from Boost.Hana to Hana lite, part 3: Replace numerous compile-time constants, and make other small changes that leave only use of the big Hana algorithms behind.

view details

Zach Laine

commit sha 8af6138021e306fb4f1a23024930dbe08b4cb4c4

Convert from Boost.Hana to Hana lite, part 4: Remove all the remaining direct uses of Boost.Hana, including the hana namespace algorithms.

view details

Zach Laine

commit sha 895224b21431f722f4f070b91740e147b23861c6

Convert from Boost.Hana to Hana lite, part 5: Make some small adjustments to the tests to get them building when Hana is not used; disable building the examples when Boost.Hana is not in use, so that they can keep using the much nicer hana::tuple::operator[] instead of parser::get(). This completes the changes to make Hana optional.

view details

Zach Laine

commit sha 25b99b53cd59a16c6588e4992e65e3fd93533ee5

Change the CMake build mode when BUILD_WITHOUT_BOOST is defined not to find nor include Boost at all. Fix several problems that this brought out.

view details

Zach Laine

commit sha 99005aa8487faa8afaf082b479618e91763dfb02

Add builds to Travis that disable Hana and Boost, respectively.

view details

push time in 9 days

push eventtzlaine/parser

Zach Laine

commit sha 895224b21431f722f4f070b91740e147b23861c6

Convert from Boost.Hana to Hana lite, part 5: Make some small adjustments to the tests to get them building when Hana is not used; disable building the examples when Boost.Hana is not in use, so that they can keep using the much nicer hana::tuple::operator[] instead of parser::get(). This completes the changes to make Hana optional.

view details

Zach Laine

commit sha 25b99b53cd59a16c6588e4992e65e3fd93533ee5

Change the CMake build mode when BUILD_WITHOUT_BOOST is defined not to find nor include Boost at all. Fix several problems that this brought out.

view details

Zach Laine

commit sha 99005aa8487faa8afaf082b479618e91763dfb02

Add builds to Travis that disable Hana and Boost, respectively.

view details

push time in 9 days

push eventtzlaine/parser

Zach Laine

commit sha c1205a419d031e2a1e211f9478dcaf1d030ca5d3

Convert from Boost.Hana to Hana lite, part 1: introduce a template alias for tuple, and use it throughout the code.

view details

Zach Laine

commit sha 71c697d23d683746f4b4537d2eaf85301388ca73

Convert from Boost.Hana to Hana lite, part 2: introduce a template aliases for constants like llong; provide a tuple accessor get(); use these throughout the code. Also, adapt the code in detail/hl.hpp to work with hana::tuple and std::tuple.

view details

Zach Laine

commit sha 7f45618fe16b759503dc3f807f0c166e1d22813c

Convert from Boost.Hana to Hana lite, part 3: Replace numerous compile-time constants, and make other small changes that leave only use of the big Hana algorithms behind.

view details

Zach Laine

commit sha 8af6138021e306fb4f1a23024930dbe08b4cb4c4

Convert from Boost.Hana to Hana lite, part 4: Remove all the remaining direct uses of Boost.Hana, including the hana namespace algorithms.

view details

push time in 9 days

push eventtzlaine/parser

Zach Laine

commit sha df8d20838e94909bdaf4f9f28bf42c31b14213ce

Create Boost.Hana lite.

view details

push time in 9 days

create barnchtzlaine/parser

branch : zero_dependencies

created branch time in 9 days

push eventtzlaine/program_options_2

Zach Laine

commit sha bf4781a5e98cca57cf426d9a115edf99d1d7727d

Flesh out some of parse_command_line.cpp; fix errors.

view details

Zach Laine

commit sha 19de08070393c8e130221c8ca33d576c5c1e1167

Forward default values through with_default().

view details

Zach Laine

commit sha 013291e9774cc04ad50c9dd02c236e403dd57886

Remove the remainder args constant, and instead provide a remainder() option function. This creates the only optional positional.

view details

Zach Laine

commit sha b3269f15d66127c84eec98695efcdd0af362c8c3

More parse_command_line.cpp tests; more fixes.

view details

push time in 10 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 15af93efb241a28413d4811cf30231a79c0d0ac3

Sketch in special-casing of counted flags.

view details

Zach Laine

commit sha 430a1b553fe32c3b98529ac144b5240082e3467a

Initial sketch of support for validators, including file(), directory(), and path().

view details

Zach Laine

commit sha 208a3ec512c8e3cf2cb3d6a9b6a716e4cedee13a

Add range-of-string_view overloads of parse_command_line().

view details

Zach Laine

commit sha 13cf197f5458166537e0a40a7063b3351cdb8264

Replace tag-based customization of strings with simply passing the strings struct.

view details

Zach Laine

commit sha 2d1e32b58ce89a70d714141caff6d53cb0909dff

Handle more of the special cases and error reporting within detail::parse_option() than within its callers.

view details

Zach Laine

commit sha 06240e906d3e3ee3a813609b2b9f936ce06f8327

Convert the few explicit uses of arg_view to a template parameter Args.

view details

Zach Laine

commit sha b1207847ff362c9c3108347024b5915d62e88c20

Move reusable bits of parse_command_line.hpp into separate headers.

view details

push time in 11 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 2b8f2e14887d855e7527bf7b6c089ab850c36efe

Initial sketch of winmain_arg_view.

view details

Zach Laine

commit sha 36d41a4b18a04c202ed4d7cc4b49e838dc8eb53a

Add API sketches of {readable,writable}_directory().

view details

push time in 12 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 0c638bc770bf910665134cdbf861b5c0113645a1

Implement special casing for help and version args.

view details

Zach Laine

commit sha a322760ddb820cc07cff746d3faf66ab70de9320

Finish options.cpp tests.

view details

push time in 12 days

push eventtzlaine/text

Zach Laine

commit sha c90f6bd8474b458ad8b416871482caf71cc93b1a

Only make a phony dependency on boost_clone if there is a boost_clone target.

view details

push time in 12 days

push eventtzlaine/text

Zach Laine

commit sha 1e74cec2ec1fb5e38df174986f9fffded4746a8c

Take a new approach to cloning Boost dependencies to fix CI build errors.

view details

push time in 12 days

push eventtzlaine/text

mario

commit sha b1988e75091f1b3ff1ce489279c1897ff78e6378

Fix utf_16_to_8_iterator stack overflow on partial surrogate pair.

view details

push time in 12 days

PR merged tzlaine/text

Fix utf_16_to_8_iterator stack overflow on partial surrogate pair.

at_end() was checking iterator before it was incremented, then the increment happens, then dereference of unchecked iterator. Compile with USE_ASAN.

+25 -4

1 comment

2 changed files

msuvajac

pr closed time in 12 days

pull request commenttzlaine/text

Fix utf_16_to_8_iterator stack overflow on partial surrogate pair.

Thanks!

msuvajac

comment created time in 12 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 529703519b9010ece1373e54544731b8dade7374

Remove TODOs about additional option checks.

view details

Zach Laine

commit sha 14310ab42e717ee887a8ce88cd0c993cdcfc1058

Fix up some TODOs.

view details

Zach Laine

commit sha ca0ccd8f3898850c23ca929944645d0717078da1

Special-case a successful parse of a help option while parsing args.

view details

push time in 13 days

push eventtzlaine/program_options_2

Zach Laine

commit sha f4f7aca59b9f07c50c4e3e1c29764f7ccf7c0d5d

Complete initial sketch of detail::parse_options_into_tuple().

view details

push time in 13 days

push eventtzlaine/program_options_2

Zach Laine

commit sha cd23ec7fab022c6be5e884573a9dc392ade43333

Partial sketch of detail::parse_options_into_tuple().

view details

Zach Laine

commit sha 0681cb11a77d926bc46308688815c94a83040bc7

Require constructible and assignable in the places that assignable was required before, and produce no_value for void options in the tuple returned from parse_command_line().

view details

Zach Laine

commit sha 9795535cdf4c80a8d21d28be7bfb91dd793434e6

Remove bool special-casing from detail::make_result_tuple().

view details

Zach Laine

commit sha 003af1d415d0fe38ac7228fdc55d43e6b6bdaad2

Sketch in more of detail::parse_options_into_tuple().

view details

push time in 14 days

push eventtzlaine/text

Zach Laine

commit sha 8f29819d838543d53a2959bef5af4aff42096e24

Try to fix Boost-cloning-related Travis build failures.

view details

push time in 14 days

issue commenttzlaine/text

Add a CMake install target

@cjdb Ok, I figured out a way to export the .cmake files for targets and config as part of the install target. There is still a dependency on boost, but its implicit when using those files. Users can do:

find_package(text PATHS <path-to-installed-text>)

And then later:

target_link_libraries(my_target Boost::text ...)

But the "..." needs to include "Boost::boost", or whatever the main Boost dependency is called. Hope that helps.

cjdb

comment created time in 14 days

push eventtzlaine/text

Zach Laine

commit sha bd8577d3f0d002ef363b8208fa45083e4db11dec

Remove the boost target as a direct CMake dependency of text. Partially addresses #184.

view details

Zach Laine

commit sha a3a021a3780c86ff6ebc583dbf43607ad83910b6

Add CMake -targets.cmake and -config.cmake files to installations. Partially addresses #184.

view details

push time in 14 days

issue commenttzlaine/text

Add a CMake install target

Ok, this is "done", in that there is an install target. It just installs the lib binary and the headers. I have no idea how to do it the proper way, with the CMake targets and config files. The problem is that text depends on Boost, but is not yet a part of Boost. It uses Boost via FindBoost when it can, and otherwise it clones the bits of Boost it needs. In either case, there is a boost lib that text depends on. I cannot export text without its dependency boost, as far as I can tell. If someone can explain to me how this is supposed to work, I can change this.

cjdb

comment created time in 14 days

push eventtzlaine/text

Zach Laine

commit sha f3325ccea7809d9f255a455689ffc8731fbf6fa3

Add a minimal install target. Fixes #184.

view details

push time in 14 days

issue closedtzlaine/text

Add a CMake install target

It'd be great to add this library to package managers, but that will require install targets to be generated.

closed time in 14 days

cjdb

push eventtzlaine/text

mario

commit sha a5e809332d5d9eb70f63391ade6f982d895e62a6

Fix utf_16_to_32_iterator not advancing on invalid surrogate pairs.

view details

push time in 14 days

PR merged tzlaine/text

Fix utf_16_to_32_iterator not advancing on invalid surrogate pairs.

When encountering invalid surrogate pair utf_16_to_32_iterator never advances past that point leading to an infinite loop.

+37 -5

1 comment

2 changed files

msuvajac

pr closed time in 14 days

pull request commenttzlaine/text

Fix utf_16_to_32_iterator not advancing on invalid surrogate pairs.

Thanks for the fix, and especially the test!

msuvajac

comment created time in 14 days

issue commenttzlaine/text

Add a CMake install target

Sorry it took me so long to see this. I'll get on this right away. You just need the typical install arrangement, right? A root directory ROOT that the user provides , with this layout:

ROOT/include ROOT/lib

... right?

cjdb

comment created time in 14 days

push eventtzlaine/text

Zach Laine

commit sha 08d13bb4ab6d1a9ae87edca0eb04b7d86ae64e6b

Update README.md

view details

push time in 14 days

issue commenttzlaine/text

Doc overhaul: remove references to string layer

Gah! I always forget the README! Thanks for pointing this out.

tzlaine

comment created time in 14 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 571fc877809505517bc680f691c02b7a117965c8

Add arg_iter and arg_view.

view details

Zach Laine

commit sha cea1032de1d392efef7e369a25f86ab60d7558f0

Use arg_view throughout the code, and sketch in the approach to use in arg parsing.

view details

Zach Laine

commit sha 1ca586fa0fd51480d13d16c32dd0ef37b7a1bdfc

Give detail::option knowledge of what type of option it is (positional or argument) as an NTTP.

view details

push time in 15 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 01f1139c126174d8c9438b3416ea6c95f0b01582

WIP

view details

Zach Laine

commit sha e5560a399d720c7eb20e760f6ac8431d19f98d24

Add arg_iter and arg_view.

view details

Zach Laine

commit sha 477dd02112fba47f86ff1557e1f335f4aab29b04

Use arg_view throughout the code, and sketch in the approach to use in arg parsing.

view details

push time in 16 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 6bb940bc7d6fa799eb3c5aa977d9d156c1c82bec

Fix stray extra lines containing whitespace after each argument in the post synopsis.

view details

push time in 16 days

issue openedtzlaine/parser

Reduce dependencies

created time in 16 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 3bb1608ef0cb7d5e67c6af09a62cacc89a036140

Put all magic strings into one struct. User customizability of those strings to come.

view details

Zach Laine

commit sha c55ad142757fc9c2808d5e206e9670da2767a286

Add user customizability of the strings used printing.

view details

push time in 16 days

push eventtzlaine/program_options_2

Zach Laine

commit sha f94dc722744ec7658ff146efaaf4702e741ab84f

Don't special-case help option printing in print_help_synopsis(), but do add the default help option to print_help() within parse_command_line().

view details

Zach Laine

commit sha 1281256aa88998a6ec195332736f68037f97134c

Fix wrapping of options in the synopsis.

view details

Zach Laine

commit sha 6d83cbf5f5aeea4180af23de1a644ff8cc275390

Implement column-wrapped description printing.

view details

Zach Laine

commit sha 765fd437c53162eafe0f43b0964c2e5f9e49dee9

Cruft removal.

view details

Zach Laine

commit sha e8dbfb644e37a34e04f1af5f0007069f34400f29

Turn the code in printing/parse_command_line_help into and actual test.

view details

push time in 16 days

push eventtzlaine/program_options_2

Zach Laine

commit sha cd769cc809e71ffe92c488af4b90a0b7bad596b9

Implement the options and descriptions printing, except for the wrapping of descriptions.

view details

Zach Laine

commit sha 1ace5f18e2ef3acae336ee78edf8c1c1298d73fd

Fix double newline error.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha a0d9710389817bfa248b4abbcad5f5f8a317da08

Turn the code in the detail_print_help_synopsis test into actual tests.

view details

Zach Laine

commit sha 75039c9982993427db4a16af678a49d0cb1ee5fb

- Fix broken bidirectional printing. - Begin sketching in non-synopsis printing. - Add help text to each option construction function, and to option itself.

view details

Zach Laine

commit sha e111cd257da2384061b45f5f6c1a9c782a25b8f9

Add std::string_view as the default for the T parameter to all option construction functions.

view details

Zach Laine

commit sha 346e32982fc58a065f44a9c95e616e17b8c450f1

Grooming.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 12355cab69bc675f543a17a32a4a6a6ff4183c1d

Finish printing tests for the remaining option-constructing functions.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 4c6fbcf50d6a71965d3b423eba90db345ea9be12

Assert that args is not an unknown negative value.

view details

Zach Laine

commit sha ceb87686a60d27edeb516f086017e0786e918e90

Finish printing tests for positionals().

view details

Zach Laine

commit sha 5e5befb457f78dba060fc6034b2b50e4bb40cafc

Remove unnamed positional() overloads.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha c060329bdbe4a7f769c1c367bfb1b4c01ad67974

Finish printing tests for arguments().

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 22d7f50ce3d078395e55f890abbd737c07fd36ea

- Fix up all the places the had not adjusted to the new option template param. - Implement printing of options with choices.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 3ec48e2be9d65f954a34d54982385403638a64b8

- Fix up all the places the had not adjusted to the new option template param. - Implement printing of options with choices.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 646c94f9ea4e871501c809df574fc87d61e0b922

Change the requirements on choices passed to arguments() and positionals(), so that they *all* must be assignable to the option's T, or they must *all* be insertable into T. That makes argument<std::vector<T>>(..., T{}, std::vector<T>{}) properly ill-formed.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 8e7ab6ced80eabf9e304c8da004aa1d4ab0d23cc

- Accept any choice that may be assigned to or inserted T when accepting choices in argument() or positional(). - Compute a type for the choices, instead of just using the optionsl's Value template parameter. This allows T, Value, and choice_type all to be different.

view details

Zach Laine

commit sha c897445e47b5cc17485534e2b71349a03f23b791

Fix ill_formed.hpp, by adding detection code to it.

view details

Zach Laine

commit sha 47e104795869858d36779fa81f0561fb19d72618

Change the requirements on choices passed to arguments() and positionals(), so that they *all* must be assignable to the option's T, or they must *all* be insertable into T. That makes argument<std::vector<T>>(..., T{}, std::vector<T>{}) properly ill-formed.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 67af14a9c374a3c174abce7c57522f29d20083df

Small refactorings to aid testing, and regularization of the API.

view details

Zach Laine

commit sha f8b4ca0db525152ef78a4b127705fe61a494f96f

nargs -> args

view details

Zach Laine

commit sha af24ed2c49a7b982124fb4cfc9afcd0fbc5efd1c

Print help text using Unicode bidi algorithm.

view details

Zach Laine

commit sha 7ef3d3d598a08b256574dab90a0e3f261a84eb73

Add overload of with_default() that adds a default element to an option with type that is insertable.

view details

Zach Laine

commit sha 050419fedd828078769b92c7c5e6861abe2d8b8c

Add tests for with_default() and with_display_name() for argument options.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha c696d5cc96cea2ba95044b802c21e8659b274584

Implement wrapping the lines of options listed in the synopsis.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 0dd757a797ed762b5e6a66f517db7ff2ee9aa194

Fix a couple of minor printing issues; exit(0) after printing help text.

view details

push time in 17 days

push eventtzlaine/program_options_2

Zach Laine

commit sha 50e530399c46cf2d734c48f315215f3bf62388cb

More tests, more fixes. Also added the beginnings of a hello world example.

view details

push time in 18 days

create barnchtzlaine/program_options_2

branch : master

created branch time in 18 days

created repositorytzlaine/program_options_2

An update of Boost.ProgramOptions.

created time in 18 days

push eventtzlaine/parser

Zach Laine

commit sha fd502751e0f7fb4daf88dbf970cc500bec4d5a28

Remove GTest .md files that offend Github's pages build bot.

view details

Zach Laine

commit sha f40be64876ebf262070437f4f26b23afb4c6f40b

Merge branch 'master' into gh-pages

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha fd502751e0f7fb4daf88dbf970cc500bec4d5a28

Remove GTest .md files that offend Github's pages build bot.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha 4e803101ca6b360e3cb955214eea5dfacaf8663f

Enforce that skip_directive::oeprator()() takes a parser_interface, and add comments in a couple of plaes to indicate to users why their code is ill-formed. Fixes #8 (to the greatest extent possible, which isn't much).

view details

Zach Laine

commit sha 19d441743aa8c204f443cd539c8758ac5e580570

Fix the constraints on {callback_,}parse() when called with a pointer to a null-terminated string.

view details

Zach Laine

commit sha f23c8649767a3da53eb168ce108b6fe7cbeafd19

Fix detail::make_input_view()'s handling of pointers-as-ranges.

view details

Zach Laine

commit sha 32ebd382706b9b5facc253510f94fa215b7bf3b3

Exercise the sentinel code path for every parser; fix errors. Fixes #3.

view details

Zach Laine

commit sha 93f4ab246a52d7c4c8fd9e4248e6792339d447d3

Add an empty-input test that covers every parser. Fixes #1.

view details

Zach Laine

commit sha 3c8cc0275d75c2bd452f5872ebed5d984a3c8226

Use C++17 by default in the CMake build.

view details

Zach Laine

commit sha 62149efddf9ab3996fda69ea3aaeb58596c7e909

Constrain view's iterator type to be a forward-iterator.

view details

Zach Laine

commit sha 3fe8116714736548e4bfcbcf73bfca0eca5ab601

Remove TODO.

view details

Zach Laine

commit sha 0f8eedbd7fc40326041c09d5640ea6177402d494

Constrain iterator and/or sentinel template parameters in make_view(), report_error(), and _report_warning().

view details

Zach Laine

commit sha 701566d6b06707eb0831b76257820cbcea28124b

Grooming.

view details

Zach Laine

commit sha 3ac30663b4042b129c5e0f8aee71a7c327cf4d18

Add support for C++17.

view details

Zach Laine

commit sha b0964f039b52f447b2d885438c3e1feab8eb6115

Initial add of Travis and Appveyor config files.

view details

Zach Laine

commit sha f83345e1fb36de4e0bfa4f705ce68c5b416f5808

Bring in GTest from text.

view details

Zach Laine

commit sha 435ac5adf481518db231e748d9baa70d43fb0cae

Fix a handfull of compilation failures when building on MSVC.

view details

Zach Laine

commit sha d8a323a5fb43b8ab5952d18f49e6f05044642ca5

Fix VC2019 test failures.

view details

Zach Laine

commit sha c3db92bdb163e34a39c6a92e262ef527af611e16

Fix VC2017 compilation failures.

view details

Zach Laine

commit sha bd3e3bd42a0b721c7dface13152010f7ebb28a1d

Boost dependency CMake code from text.

view details

Zach Laine

commit sha b88e33cc88350294850a45fe94ca829f0b1c9a58

Fix narrowing conversion error.

view details

Zach Laine

commit sha 1d302c3d14ce2ded5c2254b7b4d959c32d9e34a9

Determine and use the correct subset of Boost submodules to clone when Boost is not available.

view details

Zach Laine

commit sha 425011e9a3e6d373c44cb7ef6c45dbf85dba2267

Replace GTest 1.8 with GTest 1.10.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha b734f79f0e1274b5aa8be143cc573a2bf5f45c8f

Update compiler support section.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha 26195a84ce26595143a7988e3a21e8e857555937

Drop XCode 9.4 from the Travis builds, since it does not have full C++17 support.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha 8dc397f53aeac26090be419b5491896880980eef

Fix broken CI badges.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha 425011e9a3e6d373c44cb7ef6c45dbf85dba2267

Replace GTest 1.8 with GTest 1.10.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha 1d302c3d14ce2ded5c2254b7b4d959c32d9e34a9

Determine and use the correct subset of Boost submodules to clone when Boost is not available.

view details

push time in 20 days

push eventboostorg/stl_interfaces

Zach Laine

commit sha a28e1674c8366ada9dc39cb403251f89383dcc88

Don't clone Boost deps into boost_root if that directory already exists.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha b88e33cc88350294850a45fe94ca829f0b1c9a58

Fix narrowing conversion error.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha bd3e3bd42a0b721c7dface13152010f7ebb28a1d

Boost dependency CMake code from text.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha f83345e1fb36de4e0bfa4f705ce68c5b416f5808

Bring in GTest from text.

view details

Zach Laine

commit sha 435ac5adf481518db231e748d9baa70d43fb0cae

Fix a handfull of compilation failures when building on MSVC.

view details

Zach Laine

commit sha d8a323a5fb43b8ab5952d18f49e6f05044642ca5

Fix VC2019 test failures.

view details

Zach Laine

commit sha c3db92bdb163e34a39c6a92e262ef527af611e16

Fix VC2017 compilation failures.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha b0964f039b52f447b2d885438c3e1feab8eb6115

Initial add of Travis and Appveyor config files.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha 4e803101ca6b360e3cb955214eea5dfacaf8663f

Enforce that skip_directive::oeprator()() takes a parser_interface, and add comments in a couple of plaes to indicate to users why their code is ill-formed. Fixes #8 (to the greatest extent possible, which isn't much).

view details

Zach Laine

commit sha 19d441743aa8c204f443cd539c8758ac5e580570

Fix the constraints on {callback_,}parse() when called with a pointer to a null-terminated string.

view details

Zach Laine

commit sha f23c8649767a3da53eb168ce108b6fe7cbeafd19

Fix detail::make_input_view()'s handling of pointers-as-ranges.

view details

Zach Laine

commit sha 32ebd382706b9b5facc253510f94fa215b7bf3b3

Exercise the sentinel code path for every parser; fix errors. Fixes #3.

view details

Zach Laine

commit sha 93f4ab246a52d7c4c8fd9e4248e6792339d447d3

Add an empty-input test that covers every parser. Fixes #1.

view details

Zach Laine

commit sha 3c8cc0275d75c2bd452f5872ebed5d984a3c8226

Use C++17 by default in the CMake build.

view details

Zach Laine

commit sha 62149efddf9ab3996fda69ea3aaeb58596c7e909

Constrain view's iterator type to be a forward-iterator.

view details

Zach Laine

commit sha 3fe8116714736548e4bfcbcf73bfca0eca5ab601

Remove TODO.

view details

Zach Laine

commit sha 0f8eedbd7fc40326041c09d5640ea6177402d494

Constrain iterator and/or sentinel template parameters in make_view(), report_error(), and _report_warning().

view details

Zach Laine

commit sha 701566d6b06707eb0831b76257820cbcea28124b

Grooming.

view details

Zach Laine

commit sha 3ac30663b4042b129c5e0f8aee71a7c327cf4d18

Add support for C++17.

view details

Zach Laine

commit sha b3f86ca80a397edb71b74a6a8f36d83f54efe0ce

Initial add of Travis and Appveyor config files.

view details

push time in 20 days

push eventtzlaine/parser

Zach Laine

commit sha e545504a81c68a3dbb01e63376ac35fed17b3851

Remove top-level index.html

view details

push time in 22 days

push eventtzlaine/parser

Zach Laine

commit sha e545504a81c68a3dbb01e63376ac35fed17b3851

Remove top-level index.html

view details

Zach Laine

commit sha 891356117a9dd63f06e088085b054b6c42253d91

Merge branch 'master' into gh-pages

view details

Zach Laine

commit sha 6be9c6d4b0f24258f5333ec3054f8b681f260ad7

Add top-level index.html

view details

push time in 22 days

push eventtzlaine/parser

Zach Laine

commit sha 0cbb776c8fbb3528108ee69faaf2622e22fe8d1b

Add README.md.

view details

Zach Laine

commit sha c19bafc7d91fdbf3cfc9fd7b76f33fb11dc0f7ad

Remove README.md files from GTest and Google Bench.

view details

Zach Laine

commit sha 053a0f5d91d67fe4b83658edde189c0f16eb7f3e

Merge branch 'master' into gh-pages

view details

push time in 22 days

push eventtzlaine/parser

Zach Laine

commit sha c19bafc7d91fdbf3cfc9fd7b76f33fb11dc0f7ad

Remove README.md files from GTest and Google Bench.

view details

push time in 22 days

push eventtzlaine/parser

Zach Laine

commit sha 0cbb776c8fbb3528108ee69faaf2622e22fe8d1b

Add README.md.

view details

push time in 22 days

create barnchtzlaine/parser

branch : gh-pages

created branch time in 22 days

push eventtzlaine/parser

Zach Laine

commit sha df0a9b5214b67a44c5f672bf0e9b8ae68c992b67

Correct top-level index.html for standalone docs use.

view details

Zach Laine

commit sha ff856a20a3d49d3afb6257727f4e9ceb6723fb38

First draft of Memory Allocation section.

view details

Zach Laine

commit sha edf4b0ebffde8211d3751459f7e945c08a83fbcd

Fix broken line quoting in write_formatted_message().

view details

Zach Laine

commit sha dcbb0fd9321f8dd797b36646a2073ac7c676d5a4

Don't even generate the name of parsers in the no-trace case.

view details

Zach Laine

commit sha fb9c4736ff4e9f2a04de3fa86d28b9ceb1932236

Regularize the features of {stream,callback}_error_handler by giving stream_error_handler an optional second stream.

view details

Zach Laine

commit sha 1b2ea46927f162cad229e1764545825a4115d7d8

Revert "Make the Jamfile look a lot more like the ones in yap and stl_interfaces." This reverts commit 454a84d3d3ee3148a5c33b3fb920ecadee88df96. Turns out those changes do not work for standalone (out-of-Boost) docs.

view details

Zach Laine

commit sha 10d0ec0846c4ea9a7058534f5268f1a208cf4933

First draft of Error Handling and Debugging.

view details

push time in 22 days

more