2009-07-27 13 views
2

ちょっと、私はBoostのスレッドライブラリを使用するC++ Communication Services Frameworkを使用しています。Visual C++ 2008 Boost問題

私は彼らのテストプロジェクト(CSFの)のいずれかをコンパイルしていると私は

エラーがファイルにブーストバインドライブラリに

バインド/ mem_fn_template.hppある巨大なエラーを取得しています編集:ここではBoostPro

によって提供さ私がインストールブーストインストーラによってブーストは

C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(146) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(193) : see reference to class template instantiation 'boost::_mfi::mf1<R,T,A1>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(146) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(146) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(146) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(146) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(151) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(151) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(151) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(151) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(151) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(210) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(243) : see reference to class template instantiation 'boost::_mfi::cmf1<R,T,A1>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(210) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(210) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(210) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(210) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(215) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(215) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(215) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(215) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(215) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(258) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(305) : see reference to class template instantiation 'boost::_mfi::mf2<R,T,A1,A2>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(258) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(258) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(258) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(258) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(263) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(263) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(263) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(263) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(263) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(320) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(353) : see reference to class template instantiation 'boost::_mfi::cmf2<R,T,A1,A2>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(320) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(320) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(320) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(320) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(325) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(325) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(325) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(325) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(325) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(368) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(415) : see reference to class template instantiation 'boost::_mfi::mf3<R,T,A1,A2,A3>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(368) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(368) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(368) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(368) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(373) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(373) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(373) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(373) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(373) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(430) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(463) : see reference to class template instantiation 'boost::_mfi::cmf3<R,T,A1,A2,A3>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(430) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(430) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(430) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(430) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(435) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(435) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(435) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(435) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(435) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(478) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(525) : see reference to class template instantiation 'boost::_mfi::mf4<R,T,A1,A2,A3,A4>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(478) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(478) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(478) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(478) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(483) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(483) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(483) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(483) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(483) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(540) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(573) : see reference to class template instantiation 'boost::_mfi::cmf4<R,T,A1,A2,A3,A4>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(540) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(540) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(540) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(540) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(545) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(545) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(545) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(545) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(545) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(588) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(635) : see reference to class template instantiation 'boost::_mfi::mf5<R,T,A1,A2,A3,A4,A5>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(588) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(588) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(588) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(588) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(593) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(593) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(593) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(593) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(593) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(650) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(683) : see reference to class template instantiation 'boost::_mfi::cmf5<R,T,A1,A2,A3,A4,A5>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(650) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(650) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(650) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(650) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(655) : error C2332: 'class' : missing tag name 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(655) : error C2993: '' : illegal type for non-type template parameter '<unnamed-tag>' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(655) : error C2143: syntax error : missing ',' before 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(655) : error C2988: unrecognizable template declaration/definition 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(655) : error C2059: syntax error : 'constant' 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(698) : error C2332: 'class' : missing tag name 
     C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(745) : see reference to class template instantiation 'boost::_mfi::mf6<R,T,A1,A2,A3,A4,A5,A6>' being compiled 
C:\Program Files\boost\boost_1_39\boost/bind/mem_fn_template.hpp(698) : fatal error C1003: error count exceeds 100; stopping compilation 
エラーの数です

答えて

2

2005年以来、C++ Communication Services Frameworkは更新されていませんでしたが、Boost :: Threadはそれ以降頻繁に更新されていたため、下位互換性が壊れたものが変更されている可能性があります。 Boost 1.33で同じエラーが発生するかどうかを確認することをお勧めします。

4

問題のある行は

template<class U, class B1> R call(U & u, T const *, B1 & b1) const 

であるあなたがUまたはB1のいずれかという名前のマクロを持っていませんか? 「#define U」と「#define B1」のすべてのソースで検索できます。

+0

明白なのは、振り返ってみると分かります!私は別のBoostライブラリで同じエラーが発生しました。実際には、プロジェクトのコードのどこかにテンプレートパラメータトークン(Boostライブラリにありますが、これは無関係ですが)がマクロで定義されています。 –

関連する問題