On 5/10/2018 11:37, Peter Dimov wrote:
The new Boost.System is now complete, on the develop branch:
https://www.boost.org/doc/libs/develop/libs/system/
- header-only - even more constexpr than 1.68
https://pdimov.github.io/cpp-papers/P1195R0.html
- identifier-based category comparison
https://pdimov.github.io/cpp-papers/P1196R0.html
- message() into a caller-supplied buffer
https://pdimov.github.io/cpp-papers/P1197R0.html
- failed()
https://pdimov.github.io/cpp-papers/P1198R0.html
The plan is to merge it to master at some point if no breakage is encountered on develop, so that it can go into the next release.
Looks good. I assume that the link to random.org implies that the proposed identifiers for generic_category and system_category were selected this way. I suggest calling this out a bit more explicitly as the preferred method of choosing identifiers for custom categories, as on the first reading I overlooked this and was wondering how they had been chosen. I also suspect that unless strongly encouraged to pick only random numbers, people are going to naturally try to pick "cute" identifiers (eg. ASCII encodings of words, a la FOURCC) or dumb identifiers (small integers), which have a much higher probability of collision. Also, in P1197R0, perhaps I'm missing some context (not having a copy of the standard handy) but it seems peculiar that the Effects of the two new message() overloads are ordered differently with respect to possibly returning a literal message pointer, ignoring buffer and len. Why is it that the second can do this but not the first?