|
Boost : |
Subject: Re: [boost] [review][mp11] Formal review of Mp11
From: Joaquin M López Muñoz (joaquinlopezmunoz_at_[hidden])
Date: 2017-07-17 08:32:02
El 17/07/2017 a las 3:11, Peter Dimov via Boost escribió:
> Joaquin M López Muñoz wrote:
>
>> 1.4 Tuple operations are named differently from their C++14/17
>> counterparts to "avoid ambiguities when both are visible or in
>> unqualified calls". Yet, this policy is not followed in
>> integer_sequence.hpp. I'd rather go the latter way.
>
> The primitives in integer_sequence.hpp are template aliases, so
> argument-dependent lookup does not
> apply to them. The tuple functions are, well, functions, and when
> f.ex. make_from_tuple<T>(tp) is
> called with an std::tuple, ADL finds std::make_from_tuple because std
> is an associated namespace.
> So the code suddenly becomes ambiguous in C++17.
You can replace your implementation with using std::make_from_tuple when
the latter is available.
After all, the perceived intention of these functions is precisely to
serve as a substitute in wait for
C++17 to arrive.
Same goes for integer_sequence.hpp, even if the conditions for collision
are different.
JoaquÃn M López Muñoz
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk