Распределитель STL на основе стека?

Мне было интересно, возможно ли иметь распределитель , совместимый со стандартной библиотекой C ++, который использует буфер (фиксированного размера), который живет в стеке .

Почему-то кажется, что этот вопрос еще не был задан таким образом на SO, хотя мог неявно ответить на него в другом месте.

Итак, в основном кажется , насколько мои поиски идут, что должна быть возможность создать распределитель, который использует буфер фиксированного размера. Теперь, на первый взгляд, это должно означать, что также должно быть возможно иметь распределитель, который использует буфер фиксированного размера, который «живет» в стеке, но он действительно появляется , что нет такой распространенной реализации.

Позвольте мне привести пример того, что я имею в виду:

{ ...
  char buf[512];
  typedef ...hmm?... local_allocator; // should use buf
  typedef std::basic_string, 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 по умолчанию .

37
задан Community 23 May 2017 в 12:09
поделиться