ブースト:: unordered_mapとブースト::プールアロケータを使用するための構文は何ですか?

StackOverflow https://stackoverflow.com/questions/1061543

  •  21-08-2019
  •  | 
  •  

質問

私はちょうどその場合は私が働いているもののためのより高速なアロケータを見るために、ブースト::プールを試していますが、私はブースト:: unordered_mapとそれを使用する方法を見つけ出すことはできません。

ここでは、コードスニペットです:

unordered_map<int,int,boost::hash<int>, fast_pool_allocator<int>> theMap;   
theMap[1] = 2;

ここで私は、コンパイルエラーを取得されます:

エラー3エラーC2064:\プログラムファイル(x86の)\順不同\詳細\のhash_table_impl.hpp 2048 \ブースト\ boost_1_38の\ブースト

:この用語は、2つの引数Cを取る関数に評価しません

私は、例えば、マップの使用をコメントアウトした場合"theMap [1] = 2" 次に、コンパイルエラーが表示されなくなります。

役に立ちましたか?

解決

あなたが<テンプレートパラメータが欠落しているように、

に見えます/>。

template<typename Key, typename Mapped, typename Hash = boost::hash<Key>, 
     typename Pred = std::equal_to<Key>, 
     typename Alloc = std::allocator<std::pair<Key const, Mapped> > > 

第四のパラメータは、比較のための述語は、第五のアロケータである。

unordered_map<int, int, boost::hash<int>,
     std::equal_to<int>, fast_pool_allocator<int> > theMap;

また、おそらくないあなたの問題の原因は、テンプレートのインスタンス化の終わりに2「>」を分離する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top