Section: 22.10.15 [func.bind], 99 [tr.func.bind] Status: CD1 Submitter: Pete Becker Opened: 2005-07-03 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with CD1 status.
Discussion:
In the original proposal for binders, the return type of bind() when called with a pointer to member data as it's callable object was defined to be mem_fn(ptr); when Peter Dimov and I unified the descriptions of the TR1 function objects we hoisted the descriptions of return types into the INVOKE pseudo-function and into result_of. Unfortunately, we left pointer to member data out of result_of, so bind doesn't have any specified behavior when called with a pointer to member data.
Proposed resolution:
[ Pete and Peter will provide wording. ]
In 20.5.4 [lib.func.ret] ([tr.func.ret]) p3 add the following bullet after bullet 2:
F
is a member data pointer type R T::*
, type
shall be cv R&
when T1
is cv U1&
,
R
otherwise.[ Peter provided wording. ]