allocatorスタック上に存在する(固定サイズの)バッファーを使用するC++標準ライブラリに準拠することが実用的かどうか疑問に思いました。
どういうわけか、この質問は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
}
これはどのように実装できますか?
この他の質問への回答(R. Martinho Fernandesに感謝)は、クロムソースからのスタックベースのアロケータにリンクしています:http ://src.chromium.org/viewvc/chrome/trunk/src/base/stack_container.h
ただし、このクラスは非常に独特なようです。特にStackAllocator 、デフォルトのctorがないためです。そこで、すべてのアロケータクラスにデフォルトのctorが必要だと考えていました。