1397. Deprecate '98 binders

Section: 22.10 [function.objects] Status: Resolved Submitter: BSI Opened: 2010-08-25 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [function.objects].

View all issues with Resolved status.

Discussion:

Addresses GB-95

The adaptable function protocol supported by unary_function/binary_function has been superceded by lambda expressions and std::bind. Despite the name, the protocol is not very adaptable as it requires intrusive support in the adaptable types, rather than offering an external traits-like adaption mechanism. This protocol and related support functions should be deprecated, and we should not make onerous requirements for the specification to support this protocol for callable types introduced in this standard revision, including those adopted from TR1. It is expected that high-quality implementations will provide such support, but we should not have to write robust standard specifications mixing this restricted support with more general components such as function, bind and reference_wrapper.

[ Resolution proposed by ballot comment ]

Move clauses 20.8.3, 20.8.9, 20.8.11 and 20.8.12 to Annex D.

Remove the requirements to conditionally derive from unary/binary_function from function, reference_wrapper, and the results of calling mem_fn and bind.

[ 2010-10-24 Daniel adds: ]

Accepting n3145 would solve this issue.

Proposed resolution:

Resolved by paper N3198.