Title
Two unspecified function comparators in [function.objects]
Status
resolved
Section
[function.objects]
Submitter
Daniel Krügler

Created on 2007-03-19.00:00:00 last changed 170 months ago

Messages

Date: 2011-04-26.22:11:06

Rationale:

Fixed by N2292 Standard Library Applications for Deleted Functions.

Date: 2010-10-21.18:28:33

Proposed resolution:

Remove the above mentioned two function templates from the header <functional> synopsis ([function.objects])

template<class Function1, class Function2>
void operator==(const function<Function1>&, const function<Function2>&);
template<class Function1, class Function2>
void operator!=(const function<Function1>&, const function<Function2>&);
Date: 2007-03-19.00:00:00

The header <functional> synopsis in [function.objects] contains the following two free comparison operator templates for the function class template

template<class Function1, class Function2>
void operator==(const function<Function1>&, const function<Function2>&);
template<class Function1, class Function2>
void operator!=(const function<Function1>&, const function<Function2>&);

which are nowhere described. I assume that they are relicts before the corresponding two private and undefined member templates in the function template (see [func.wrap.func] and [func.wrap.func.undef]) have been introduced. The original free function templates should be removed, because using an undefined entity would lead to an ODR violation of the user.

History
Date User Action Args
2010-11-19 19:04:45adminsetstatus: nad editorial -> resolved
2010-10-21 18:28:33adminsetmessages: + msg3351
2010-10-21 18:28:33adminsetmessages: + msg3350
2007-03-19 00:00:00admincreate