VC ++中的typedef&促进

时间:2011-07-10 23:10:13

标签: visual-studio-2008 visual-c++ boost boost-multi-index

我正在学习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上。有人可以帮我解释一下吗?

3 个答案:

答案 0 :(得分:3)

该示例中的代码具有隐含的using指令 - using namespace boost::multi_index;

typedef之前添加所述使用指令,或完全限定multi_index_containerindexed_byordered_uniquehashed_unique等。

答案 1 :(得分:2)

他们的代码示例不包含必要的命名空间,我认为这是您的问题。尝试添加

using namespace boost;
using namespace boost::multi_index;
在给出代码之前

答案 2 :(得分:1)

这是命名空间问题。你需要一个boost ::在multi_index_container和indexed_by之前以及你从boost中提取的所有其他东西。