> -----Original Message----- > From: Travis Vitek [mailto:[EMAIL PROTECTED] > Sent: Wednesday, June 18, 2008 5:29 PM > To: dev@stdcxx.apache.org > Subject: RE: :decay related question > > > > >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?
Well I see where Vtypes is coming from: it's the type list composed of Vi where each Vi is... well that's the part I'm not sure about because of X. > > 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]. That's what I thought. That's also what other implementations are showing. Also, doesn't an array decay to a pointer to the element type? Brad.