2011-07-10 10 views
0

私はboost multiIndexについて学んでおり、私はthis tutorialに従っています。typedef 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ディレクティブ - using namespace boost::multi_index;があります。どちらの追加

typedef前にディレクティブを使用して、または完全修飾したmulti_index_containerindexed_byordered_uniquehashed_uniqueなど

+0

私はとても馬鹿だと感じています、本当にありがとう、ありがとうございました:) – Adi

1

これは、名前空間の問題だ。あなたはブーストが必要になります::そのmulti_index_containerとindexed_bの前にあなたがブーストから引っ張っているすべてのもの。

2

彼らのコードサンプルは、私はあなたの問題だと思う必要な名前空間を、含まれていません。与えられたコードの前に

using namespace boost; 
using namespace boost::multi_index; 

を追加してください。