Мне было интересно, возможно ли иметь стандартную библиотеку С++ allocator
, которая использует буфер (фиксированный размер), который живет в стеке.
Как бы то ни было, похоже, этот вопрос еще не спросил об этом SO, хотя он, возможно, был неявным образом ответил в другом месте.
Таким образом, по-моему, насколько мне известно, возможно создание распределителя, использующего буфер фиксированного размера. Теперь, на первый взгляд, это должно означать, что также должно быть возможно иметь распределитель, который использует буфер фиксированного размера, который "живет" в стеке, но, похоже, не существует такой широко распространенной реализации.
Позвольте мне привести пример того, что я имею в виду:
{ ...
char buf[512];
typedef ...hmm?... local_allocator; // should use buf
typedef std::basic_string<char, std::char_traits<char>, local_allocator> lstring;
lstring str; // string object of max. 512 char
}
Как это можно реализовать?
ответьте на этот другой вопрос (благодаря Р. Мартиньо Фернандесу) ссылки на распределитель на основе стека из источников хрома: http://src.chromium.org/viewvc/chrome/trunk/src/base/stack_container.h
Однако этот класс кажется чрезвычайно своеобразным, тем более что этот StackAllocator
не имеет значения по умолчанию ctor - и там я думал, что каждый класс распределителя требуется по умолчанию ctor.