On 03/04/2017 07:45, Louis Dionne via Boost wrote:
Dear Boost community,
The formal review of Barrett Adair's CallableTraits library begins today, April 3rd, and ends on April 12th.
First impressions of the docs: Looks pretty good, but: * The fact this library can be used without the rest of Boost needs much more obvious declaration * Why is a std::tuple type the way of returning the function signature? Why not some arbitrary (user supplied) variadic template? * I would really prefer a dedicated Compatibility page with a matrix of tested compiler versions against each of the facilities. Right now I need to find the correct function to use and dig into its reference docs. This is unhelpful when I am evaluating the viability of whether to use CallableTraits or not. * I can't help but think repeatedly that Concepts would be real useful in this library. I was surprised they were not mentioned. In particular the docs say things like "If cannot be legally instantiated according to the behaviour above, the behaviour is undefined". I would much prefer that failure to instantiate is a concept failure and/or a static assert or other useful compiler diagnostic, except where SFINAE is desired. In other words, can I not choose which behaviour I want? * Some ABIs let you add proprietary qualifiers to function types e.g. __stdcall. I see only a tiny mention of this at the bottom of the FAQ, yet dealing with proprietary function signature semantics is unavoidable in those systems e.g. introspecting a user supplied pointer to a Win32 syscall. Anyway, time for the day job so I'll stop there. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/