>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? 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. >
