Created on 2007-03-19.00:00:00 last changed 170 months ago
Rationale:
Fixed by N2292 Standard Library Applications for Deleted Functions.
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>&);
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:45 | admin | set | status: nad editorial -> resolved |
2010-10-21 18:28:33 | admin | set | messages: + msg3351 |
2010-10-21 18:28:33 | admin | set | messages: + msg3350 |
2007-03-19 00:00:00 | admin | create |