
On Wed, Jan 29, 2020 at 12:27 AM Gavin Lambert via Boost <boost@lists.boost.org> wrote:
https://www.boost.org/doc/libs/1_72_0/libs/smart_ptr/doc/html/smart_ptr.html...
claims that it returns a std::unique_ptr<T[], D>.
Correct. A std::unique_ptr<T[], D> stores a D::pointer. In our case, D is alloc_deleter<T[], A> and its ::pointer is an alloc_ptr<T[], Allocator>. This alloc_ptr<T[], Allocator> stores an A::pointer and a size_t.
This seems incompatible with what you're saying above.
It isn't.
(There is also no mention of ptr() or size() there.)
It specifies that the ::pointer is an 'unspecified' pointer-like type. I forgot to document that on this unspecified pointer type one can use .ptr() to get the Allocator::pointer and .size() to get the size. Glen