2011-07-10 51 views
0

我正在學習有關boost multiIndex,我正在關注this tutorialtypedef in VC++&boost

的問題是,我不能使用Visual Studio 2008 :(

每次我嘗試編譯從散列索引部分中的代碼(代碼頁面上的第一塊),C++編譯器抱怨:

發生
main.cpp(19) : error C2143: syntax error : missing ';' before '<' 
main.cpp(19) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 

這些錯誤在代碼塊上面所示的線19 typedef的。有人可以幫助我一些線索這嗎?

回答

3

該例中的代碼有一個隱含的使用指令 - using namespace boost::multi_index;

要麼加說using指令typedef之前,或完全限定multi_index_containerindexed_byordered_uniquehashed_unique

+0

我覺得很無聊,非常感謝,這確實是我的問題:) – Adi

1

這是一個命名空間的問題。你需要一個boost ::在multi_index_container和indexed_b前面y以及其他你從提升中獲得的東西。

2

他們的代碼示例不包括必要的命名空間,我認爲這是你的問題。嘗試加入

using namespace boost; 
using namespace boost::multi_index; 

之前給出的代碼。