Matthew Austern <austern@google.com>
N2257=07-0117
2007-04-18
Removing unused allocator functions
Nothing in the standard requires containers to call allocators'
construct,
destroy, or
address member functions, and there
are several open issues concerning those member functions. (401, 580, 634, and
635.) Other than test cases, there are no known uses for those member
functions. The existence of those functions impedes other useful
extensions, such as in-place construction of container elements using variadic
templates. This is a proposal to remove those functions.
Proposed wording
In table 34, in section 20.1.6 [lib.allocator.requirements], remove the rows
describing the variables
r,
s,
and t.
In table 35, in section 20.1.6 [lib.allocator.requirements], remove the rows
describing the expressions
a.address(r),
a.address(s),
a.construct(p, t), and
a.destroy(p).
In the allocator class synopsis in
20.6.1 [lib.default.allocator], remove the member functions
address,
construct, and
destroy.
In sections 20.6.1.1 [lib.allocator.members], remove the descriptions of
address (paragraphs 1 and 2),
construct (paragraph 12), and
destroy (paragraph 13).