2
私はTBBカスタムメモリアロケータを使用しています。動的に割り当てられたstlコンテナのアロケータを設定するには?
tbb::memory_pool<std::allocator<char>> shortTermPool;
typedef tbb::memory_pool_allocator<Result*> custom_allocator;
std::vector<Result*,custom_allocator>* results =(std::vector<Result*,custom_allocator>*)shortTermPool.malloc(sizeof(std::vector<Result*,custom_allocator>));
問題は、アロケータの設定がコンストラクタ内にあることです。 Mallocはコンストラクタを呼び出しません。デフォルトの使用法はこのようなものになるだろう:
tbb::memory_pool<std::allocator<char>> shortTermPool;
typedef tbb::memory_pool_allocator<Result*> custom_allocator;
std::vector<Result*,custom_allocator> results (custom_allocator(shortTermPool));
STLコンテナのmalloc関数を実行する方法があり、その後、その後、カスタムアロケータを割り当てますか?
このようにC++ 11の初期化されていないストレージをカスタムアロケータで使用できますか? – fish2000