This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Dup status.
Section: 19.14.13 [func.memfn] Status: Dup Submitter: Alisdair Meredith Opened: 2009-10-09 Last modified: 2016-02-10
Priority: Not Prioritized
View all other issues in [func.memfn].
View all issues with Dup status.
Duplicate of: 920
Since we have removed the entry in B [implimits] for the library-specific limit for number of arguments passed to function/tuple/etc. I believe we need to update the spec for mem_fn to reflect this.
The "Remarks: Implementations may implement mem_fn as a set of overloaded function templates." no longer holds, as we cannot create an arbitrary number of such overloads. I believe we should strike the remark and add a second signature:
template<class R, class T, typename ... ArgTypes> unspecified mem_fn(R (T::*pm)(ArgTypes...));
I believe we need two signatures as pointer-to-data-member and pointer-to-member-function-taking-no-args appear to use subtly different syntax.
[ 920 as a similar proposed resolution. ]
Add to 19.14 [function.objects] and 19.14.13 [func.memfn]:
template<class R, class T> unspecified mem_fn(R T::* pm)
Strike 19.14.13 [func.memfn], p5:
Remarks: Implementations may implement mem_fn as a set of overloaded function templates.