http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57272

            Bug ID: 57272
           Summary: node-based containers don't use allocator's pointer
                    type internally
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: redi at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org

Container nodes are linked together by built-in pointers, but they should use
the allocator's pointer type instead. Currently I think only std::vector does
this correctly.

This is quite an invasive change and not worth implementing until C++11
allocators are supported, which is only true of forward_list and unordered
containers so far.

I have a patch in progress for forward_list.   The change requires replacing
every _Node* with a _Node_ptr typedef and then using indirection through
std::pointer_traits to convert between e.g. _Node_ptr and _Node_base_ptr.
I need to do some measurement to see if the indirection has a cost and if so
then use partial specialization to avoid all the indirections when the pointer
is a built-in type.

Reply via email to