This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.

### 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.