我正在学习boost multiIndex,我正在关注this tutorial。
问题是我无法使用Visual Studio 2008从Hashed Indices部分(该页面上的第一个代码块)编译代码:(
每次尝试时,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上。有人可以帮我解释一下吗?
答案 0 :(得分:3)
该示例中的代码具有隐含的using指令 - using namespace boost::multi_index;
。
在typedef
之前添加所述使用指令,或完全限定multi_index_container
,indexed_by
,ordered_unique
,hashed_unique
等。
答案 1 :(得分:2)
他们的代码示例不包含必要的命名空间,我认为这是您的问题。尝试添加
using namespace boost;
using namespace boost::multi_index;
在给出代码之前。
答案 2 :(得分:1)
这是命名空间问题。你需要一个boost ::在multi_index_container和indexed_by之前以及你从boost中提取的所有其他东西。