[cfe-dev] [libc++] use of allocator_traits

Marshall Clow via cfe-dev cfe-dev at lists.llvm.org
Sat Apr 14 00:47:26 PDT 2018


On Fri, Apr 13, 2018 at 2:34 PM, Marshall Clow <mclow.lists at gmail.com>
wrote:

> On Fri, Apr 13, 2018 at 1:23 PM, Eric Fiselier via cfe-dev <
> cfe-dev at lists.llvm.org> wrote:
>
>>
>> On Thu, Apr 12, 2018 at 3:20 AM, Axel Naumann via cfe-dev <
>> cfe-dev at lists.llvm.org> wrote:
>>
>>> Hi,
>>>
>>> I'm confused by libc++'s use of allocator_traits, for instance in
>>> vector:898:
>>>     __alloc_traits::__construct_backward(this->__alloc(),
>>> this->__begin_, this->__end_, __v.__begin_);
>>>
>>> The standard seems to not require the existence of a member called
>>> __construct_backward. Seemingly standard-conforming, user provided
>>> specializations of this trait (for a user provided allocator) thus fail
>>> to compile.
>>>
>>> Am I misinterpreting allocator_trait as a customization point?
>>>
>>
>> I would have thought so, because my understanding was that the allocator
>> was the customization point, where as allocator_traits was the interface
>> used
>> to deal with the custom allocator.
>>
>> However, the standard seems to disagree with me, noting that users
>> may specialize `allocator_traits`.
>>
>>
> interesting. :-(
>
> Please open a bug at bugs.llvm.org, and I'll look into it when I get back
> from the LLVM devcon.
>
>
I guess the good news is that those calls are only used in <vector>

-- Marshall
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180414/1c57007a/attachment.html>


More information about the cfe-dev mailing list