One improvement in read/writability which might be my favorite is the
removal of SFINAE-controlled template instantiation in favor of compile
time branching with `if constexpr`. Here's an example of that in the draft
PR:

https://github.com/apache/arrow/pull/10414/files#diff-058e32693ee8820a3d8967404e05c76b37ef2f646245f794fa4acb6d26703668R241

This one at least is pretty easy to quantify ("how many instances of SFINAE
could we potentially replace?"):

$ rg enable_if | wc
612

On Wed, Jun 9, 2021 at 1:36 PM Antoine Pitrou <anto...@python.org> wrote:

>
> Le 09/06/2021 à 19:25, Eduardo Ponce a écrit :
> >
> > Measurable metrics:
> > * code size (source and binary) - measured in bytes
> [...]
> >
> > Qualitative metrics:
> > * code structure/maintainability - how would it improve development?
> > * code readability - ease of understanding details for new/current
> > contributors?
>
> These are a bit difficult to evaluate, because a pervasive upgrade to
> more modern C++ idioms would probably bring significant maintenance and
> readability improvements, but it's unlikely to be achieved *before* the
> upgrade is decided (as it would be quite a bit of work).  In the
> submitted PR, we've upgraded a couple places as a validation that C++17
> does improve ease of writing and reading code, but it is unknown how
> many other places could benefit.
>
> Regards
>
> Antoine.
>

Reply via email to