Зависит от того, какие стандарты вы хотите поддерживать.До C ++ 11 распределители были без сохранения состояния.После C ++ 11 экземпляр предоставленного объекта распределителя хранится в классе, осведомленном о распределителе, и управляет его заменой.Проблема заключается в том, что сам объект не хранится в автоматическом хранилище или, по крайней мере, не ограничивается таким типом хранилища.
Поскольку каждая реализация std :: basic_string имеет различный размер и полезную область (например,Реализация gcc - только 16 байт, т.е. 15 + конечный ноль, clang 22 байта и т. д.), и вы не можете изменить класс библиотеки; для фактического использования настраиваемого единого входа вам, вероятно, придется вручную предоставлять хранилище в стеке и создавать вокруг него адаптер класса.станд :: basic_string.