2011-10-07 45 views
7

我一直在玩一些Boost組件,在我正在工作的項目中,我看到的只有一個需求是boost::shared_ptr如何從助推庫中取出單個元素(例如shared_pointer)?

難道只包含shared_ptr所需的文件,或者至少只包含我項目中Boost smart_ptr目錄的文件?他們似乎對Boost的其他部分有一些外部依賴性 - 但我認爲有一種簡單的方法可以使用Boost庫的某些組件,但我錯過了它。

如果你能告訴我我需要什麼零件或指向一個很好的教程,我將不勝感激!

+0

這是一個有點不清楚:你想複製升壓部分爲您的項目?爲什麼? – UncleBens

+3

@UncleBens:由於Boost是一個巨大的東西,很多人不喜歡下載巨大的東西。 –

回答

10

您可以使用bcp工具僅提取所需的標題。

bcp shared_ptr /foo 

此副本shared_ptr和所有依賴的目錄

+0

整潔,我沒想到它會那麼簡單:)謝謝你。 –

-3

您只能包括升壓shared_ptr的頭這樣

#include <boost/shared_ptr.hpp> 

來看一個基本的例子here或更多的例子here

可以包括幾乎每一個這樣的升壓LIB的一部分它幾乎沒有進一步的依賴關係(僅適用於一些更復雜的庫)

+0

那麼,bcp頁面說它會找到'boost/shared_ptr.hpp'的274個頭文件依賴關係 - 一個編譯器對於一個配置最不需要。我認爲從提升庫中提取庫並不那麼容易(聽起來像OP想要保留shared_ptr並丟棄其餘)。 – UncleBens

+0

@UncleBens是的,這就是我最好想要做的 - 我欣賞這個建議! :) –

+0

你誤解了這個問題,它不是「如何在boost文件中使用#include」,而是「如何確定我需要爲#include 分發哪些boost文件才能工作? 「 –