Как использовать предоставленный GCC распределитель (например, malloc_allocator, debug_allocator, __pool_alloc)?

По умолчанию GGC использует `new_allocator. Как я могу использовать другие распределители, такие как debug_allocator/malloc_allocator?

Я сделал что-то вроде этого:

typedef std::basic_string<char, std::char_traits<char>,  __gnu_cxx::malloc_allocator<char>> Malloc_String;


Malloc_String s("Hello!");

Но получил эту ошибку:

/usr/include/c++/4.9/bits/basic_string.h: In instantiation of 'class std::basic_string<char, std::char_traits<char>, __gnu_cxx::malloc_allocator<char> >':
11:21:   required from here
/usr/include/c++/4.9/bits/basic_string.h:114:63: error: invalid use of incomplete type 'struct __gnu_cxx::malloc_allocator<char>'
       typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;

person user3059007    schedule 04.02.2018    source источник
comment
Работает на меня. Вы #include <ext/malloc_allocator.h>?   -  person ephemient    schedule 05.02.2018
comment
а, я не ставил. Спасибо. Оно работает.   -  person user3059007    schedule 05.02.2018
comment
@ephemient, вы видели это сообщение stackoverflow.com/questions/48603877/? Благодарность   -  person user3059007    schedule 05.02.2018