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

### 1398. Users should be able to specialize functors without depending on whole `<functional>` header

Section: 20.14 [function.objects] Status: NAD 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 NAD status.

Discussion:

Addresses GB-96

The function templates `hash`, `less` and `equal_to` are important customization points for user-defined types to be supported by several standard containers. These are accessed through the `<functional>` header which has grown significantly larger in C++0x, exposing many more facilities than a user is likely to need through there own header, simply to declare the necessary specialization. There should be a smaller header available for users to make the necessary customization.

[ Resolution proposed by ballot comment ]

Provide a tiny forwarding header for important functor types in the `<functional>` header that a user may want to specialize. This should contain the template declaration for `equal_to`, `hash` and `less`.

[ Rapperswill summary ]

Alisdair: Would recommend NAD unless someone takes the issue.

Daniel: Volunteers to write a paper for this.

[ 2010-11-07 Daniel provides a paper available on the Batavia document list ]

[ 2010 Batavia: ]

Closed as NAD - the consensus was that forwarding headers such as `<iosfwd>` do not bring the expected benefits, and are not widely used (to the surprise of some active users in the room!). Without real experience reporting a benefit, there is no further interest in pursuing this issue as an extension - hence NAD rather than NAD Future.

Rationale:

No consensus to make a change

Proposed resolution:

See paper "Forwarding `<functional>` functor templates" on the Batavia LWG document list