2012-10-21 43 views
0

我明白這已被問及百萬次,但我仍然無法找到解決方案。xcode中的模板類錯誤

我使用的是OSX 10.8,boost 1.50,xcode 4.5.1。

  • 我使用macports安裝了boost。
  • 創建了一個空的xcode項目。我的main.cpp中包含下面的代碼
 

    #include "boost/container/deque.hpp" 
    int main(int argc, char *argv[]) 
    { 
     boost::container::deque d(12, 5.5f); 
     return 0; 
    } 

  • 更新「頭搜索路徑」指向「/選擇/本地/包括」
  • 更新「庫搜索路徑」指向「/ opt/local/lib'
  • 嘗試更改'C++語言方言','C++標準庫'和其他設置,但根本沒有成功。

當我構建項目時,出現allocator_traits.hpp和deque.hpp中的語義問題,我不知道爲什麼。我擔心,當我開始使用更多的增強庫時,會彈出更多錯誤。

deque.hpp(行482和483)
基地符必須是一個類名(ptr_alloc_t和allocator_type)

還有什麼,我需要做的配置提升。爲什麼使用boost非常複雜?

+0

'的boost ::容器:: deque的 d(12,5.5F);'可能是你在找什麼。 –

+0

嘗試'#include ' –

回答

2

boost::container::deque是一個模板類,您必須指定您使用哪種類型。在你的情況,這是float

boost::container::deque<float> d(12, 5.5f); 

你可以閱讀更多有關模板here

+0

有趣。所以我所遵循的例子是錯誤的。奇怪的。我失去了鏈接,否則我會在這裏提到它以獲得更多的反饋。 另外,這個例子不適用於C++ 11,但可以與C++ 98一起使用。是因爲這個庫還不完全兼容現代C++ 11編譯器嗎? (http://www.boost.org/doc/libs/1_50_0/libs/fusion/doc/html/fusion/container/deque.html) – Anshul