3 ms·
It's funny you mention JSON parsers and Boost in particular. The Boost JSON parser is an abomination. It's written as a parser generator in template code, so an
by gok 8y ago
It's funny you mention JSON parsers and Boost in particular. The Boost JSON parser is an abomination. It's written as a parser generator in template code, so any file which includes it gets about 10 seconds of compile time just for that. It also blatantly violates the JSON spec and gives little to nothing in terms of parse error messages. Oh and until recently it was neither thread safe nor reentrant (you could not parse two JSON files on two different threads in the same process because it used shared global state for all parsing).
I remain baffled that anyone uses boost for anything in production.
- AboutTheWhisles 8y agoI'm sure there are good parts to boost. I have no idea what they are, but just by sheer quantity, something must be worth using.
- stochastic_monk 8y agoYou’re right. For a few examples: Smart pointers (unique, shared, auto), now part of the standard <random> The new Filesystem TR unordered_{map,set} enable_if/type_traits Some is probably less important, but they’ve been instrumental in moving the C++ standard library forward.
- AboutTheWhisles 8y agoThose were influential and have a had a very positive effect on modern C++ without a doubt. Now that they are part of the standard though there are fewer reasons to use anything from boost, largely because it is a double edged sword of compile times and dependencies.