2717. scoped_allocator_adaptor uses forward to do move's job

Section: 20.5.4 [allocator.adaptor.members] Status: NAD Submitter: Billy Robert O'Neal III Opened: 2016-05-24 Last modified: 2017-07-17 23:27:54 UTC

Priority: Not Prioritized

View all other issues in [allocator.adaptor.members].

View all issues with NAD status.


scoped_allocator_adaptor is specified to use forward when what it is really doing is moving elements. It should use move.

Previous resolution [SUPERSEDED]:

This wording is relative to N4582.

  1. Edit 20.5.4 [allocator.adaptor.members] p15 as indicated:

    template <class T1, class T2, class U, class V>
      void construct(pair<T1, T2>* p, pair<U, V>&& x);

    Effects: Equivalent to this->construct(p, piecewise_construct, forward_as_tuple(std::forwardmove<U>(x.first)), forward_as_tuple(std::forwardmove<V>(x.second))).

Proposed resolution:

Withdrawn by the submitter, since the prerequisites were incorrect.