2013-01-22 44 views
5

如果必須包含的頭文件的數量越少越好,我認爲C++庫是「優雅」的。固定大小的分配器有一個優雅的C++實現嗎?

我知道現在有固定大小的分配器,如Loki::SmallObjectAllocatorboost::pool。雖然兩者都非常出色,但我認爲它們並不優雅,也不容易無縫地融入到項目中。大多數時候,我只需要boost庫的一小部分,但我必須在我的機器上安裝整個庫。例如,如果我想使用boost :: pool,我希望只包含ONE頭文件boost_pool.h並且工作完成。因爲我認爲固定大小的分配器不應該太依賴太多的其他組件。在我看來,理想的代碼應該如下所示:

#include <boost_pool.h> 

int main() 
{ 
    boost::pool<int> p; 
    int* v = p.allocate(); 
} 

是否存在這樣的庫?

+3

你看過[bcp](http://www.boost.org/doc/libs/1_52_0/tools/bcp/doc/html/index.html)嗎?不完全相同,但它可以輕鬆地用作將所有內容都推送到單個標題中的起點。 –

+2

「我希望只包含一個頭文件'boost_pool.h'」 - 那麼,做一次工作並將所有相關的東西放在那裏?認真。 – Xeo

+0

謝謝。我剛纔查看了bcp,但發現它並不容易使用。我認爲boost有太多不必要的依賴。 – xmllmx

回答

4

歡迎您到mine。無論是否優雅,您都可以決定。但它只是一個依賴於幾個小標準標題的短標題。分配器符合C++ 11分配器要求,這是C++ 03分配器要求的一個子集。如果您需要,您可以隨時添加C++ 03鍋爐板。

+1

Windows用戶注意:請注意,狀態分配器在Visual C++ 2012 November 11 CTP下的調試模式下仍然不能工作。有一些調試檢查使用'Allocator :: construct'而不是'std :: allocator_traits :: construct' – TemplateRex

相關問題