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

Section: 22.10 [function.objects] Status: NAD Submitter: BSI Opened: 2010-08-25 Last modified: 2016-01-28 10:19:27 UTC

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