2016-03-05 67 views
4

我想在一個堆請求(如std::make_shared)中爲控制塊和value_typeshared_ptr預分配內存,但不要立即構建任何對象。而當我真的需要構建對象使用放置new。可能嗎? std::make_sharedstd::allocate_shared都不能解決我的問題。std :: shared_ptr預分配內存

+1

多態分配器可能就是你正在尋找的東西 - 未來會達到C++標準。 http://en.cppreference.com/w/cpp/experimental/lib_extensions – marko

回答

2

我會建議創建推遲的初始化包裝類,其中包含足夠的內存以便您稍後要初始化的對象。這個包裝甚至可以有特殊的方法來調用放置new和刪除析構函數中的初始化對象。