allocator

    3

    2答えて

    私は基本的な文字列の実装のいくつかと少し混乱しています。私は内側の作業を理解し、新しいことを学ぶためにソースを調べてきました。私はメモリがどのように管理されているかを完全に把握することはできません。 基本文字列実装 からわずかいくつかの一口生アロケータは、割り当てられたバッファ__size内担当者が置かれ割り当てるときに算出され... char型 typedef typename _Alloc::

    9

    2答えて

    C++のアロケータはvoid型の特殊化を提供しています。これを行う特別な目的はありますか? void型のメモリを割り当てるのは意味がありません。

    6

    5答えて

    動的アロケータを使用する前にコンテナのインスタンスに渡すことを可能にするSTL実装を知っている人はいませんか? シナリオは、多数のプールプールを管理する一般的なメモリアロケータがあり、stl :: vectorのインスタンスごとに異なるメモリプールから各インスタンスを割り当てることです。 標準的なSTL実装の問題は、タイプごとにメモリプールを定義できるということです。つまり、int型のすべてのベク

    0

    1答えて

    シンプルです - 私たちがDLLを作成し、静的なランタイムでコンパイルすると、コードではstd :: allocatorから継承する単純なアロケータを作成しますが、私たちはN個の異なるヒープを持つことができますすべてのNヒープにわたってメモリ管理のためにこのライブラリヒープ(アロケータを持つもの)のみを使用しますか?そのようなアロケータを作成する方法は?

    12

    1答えて

    これまでgcc 4.7.0で実装されているC++ 11 std::scoped_allocator_adaptorを試していましたが、C++ 11 FDISはタプル(20.4.2.8[tuple.traits])の特殊化をstd::uses_allocatorと定義していますが、他の目的ペアは、タプルのように見え、動作します(std::get、std::tuple_sizeなどの特殊化を持っていま

    6

    3答えて

    20.6.9: void deallocate(pointer p, size_type n); 要件:pが割り当てから得られたポインタ値()でなければなりません。 nは、pを返すallocateの呼び出しに最初の引数として渡された値と等しくなります。 影響:pによって参照される記憶域の割り当てを解除します。 備考:(void *型)(18.6.1)演算子は、削除::使用しますが、この関数が呼

    3

    1答えて

    まず、私はそうは思わない。しかし、私はデバッグモードでMSVC 10.0でこのような動作を観察しました。私はカスタムallocatorクラスを使用しています。このクラスは、同じインスタンス上に割り当てられたポインタのみをdeallocateに渡すようにユーザーに依存しています。しかし、リリースモードでは、私のコードが動作しています。 これはバグですか、間違っていますか?

    3

    1答えて

    boost :: unordered_mapをboost :: interprocess :: managed_shared_memoryセグメントに作成しようとしています。 boost :: interprocess :: allocatorをboost :: interprocess :: cached_node_allocatorに変更するまで、これはうまく動作します。 hash_bucke

    11

    2答えて

    新しいC++ 11標準では、コンテナ内のステートフルなアロケータをサポートするためにSTL実装が必要です。メインのSTL実装(Visual Studio 2008、2010、libstdC++)は今この要件に準拠していますか? MSDNまたはlibstdC++のドキュメントでこれについて何も見つかりませんでした。

    3

    1答えて

    以下のコードのように、任意のアロケータを使用して割り当てられたプリミティブ型の配列に対してallocator.construct()を呼び出す必要がありますか?このクラスでは、割り当てられたメモリを特定の値に初期化する必要はないので、新たに割り当てられたメモリチャンクを持つallocator.construct()を呼び出す必要はありません。配列が常にプリミティブ型で構成されている場合、このメソッ