|
Boost : |
Subject: Re: [boost] [CallableTraits] The formal review begins today
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2017-04-03 09:46:08
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/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk