Travis Vitek wrote:
Eric Lemings wrote:
Page 490, section 20.3.1.2, paragraph 1 in the latest draft says this:
"Let Ui be decay<Ti>::type for each Ti in Types. Then each Vi in VTypes
is X& if Ui equals reference_wrapper<X>,
otherwise Vi is Ui."
What do you suppose the relationship is between type `X' and types `Ti'
and `Ui'? I see how the latter two types are deduced from the
type list
`Types' but not so sure about how type `X' is deduced from `Types'.
I'm looking at this and I have no idea where VTypes and X are coming
from. Is that an issue, or am I missing something?
Have you found an issue for any of this? (If not, we/I will
need to open one.)
Martin
That said, I think X is supposed to be Ti. If that were the case then
the definition would make some sense [at least to me].
Let Ui be decay<Ti>::type for each Ti in Types. Then each
Vi in VTypes is Ti& if Ui equals reference_wrapper<Ti>,
otherwise Vi is Ui.
If that is right, then it essentially says that the 'make_tuple'
function transforms reference_wrapper<T> back to T& and for other types
does the normal decay transformation [function to funciton pointer,
array to array pointer, and cv-stripping of all other types].
Travis
Brad.