This patch changes std::function to use allocator_traits to rebind the allocator instead of allocator itself.
It also changes most of the tests to use bare_allocator where possible instead of test_allocator.
| Paths 
 |  Differential  D8391  
[libc++] Fix PR22922 - Allocator support for std::function does not know how to rebind. ClosedPublic Authored by EricWF on Mar 17 2015, 1:33 PM. 
Details 
 Summary This patch changes std::function to use allocator_traits to rebind the allocator instead of allocator itself. It also changes most of the tests to use bare_allocator where possible instead of test_allocator. 
Diff Detail Event Timelinemclow.lists edited edge metadata.Comment Actions This looks fine to me. Are there any other places in libc++ where we need to replace allocator rebind with traits rebind? This revision is now accepted and ready to land.Mar 18 2015, 10:11 AM Comment Actions Doesn't seem like it. I removed rebind from the test allocators and the only failures I saw were related to this bug. 
Revision Contents 
 
Diff 22121 include/functional
 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc.pass.cpp
 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp
 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp
 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_nullptr.pass.cpp
 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||