私は、次のコードを持っている:C2780
コンパイルエラーのトンでMSVC9 SP1結果にコンパイル使用してブースト::バインドはコンパイルに失敗し
int MimeDocument::GetAttachmentId(std::string const& content_id)
{
using namespace boost::lambda;
using boost::lambda::_1;
using boost::bind;
int id = 0;
std::vector<std::string>::iterator it =
std::find_if(attachment_list_.begin(), attachment_list_.end(),
bind(&std::string::find, content_id, _1) != std::string::npos
);
if(it != attachment_list_.end()) {
id = std::distance(attachment_list_.begin(), it);
}
return id;
}
。
1>c:\code\work\cmake-mds\server\gmmserver\domino\server\interface\dimime.cpp(210) : error C2780: 'boost::_bi::bind_t<_bi::dm_result<MT::* ,A1>::type,boost::_mfi::dm<M,T>,_bi::list_av_1<A1>::type> boost::bind(M T::* ,A1)' : expects 2 arguments - 3 provided
1> c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind.hpp(1728) : see declaration of 'boost::bind'
1>c:\code\work\cmake-mds\server\gmmserver\domino\server\interface\dimime.cpp(210) : error C2780: 'boost::_bi::bind_t<Rt2,boost::_mfi::cmf8<R,T,B1,B2,B3,B4,B5,B6,B7,B8>,_bi::list_av_9<A1,A2,A3,A4,A5,A6,A7,A8,A9>::type> boost::bind(boost::type<T>,R (__thiscall T::*)(B1,B2,B3,B4,B5,B6,B7,B8) const,A1,A2,A3,A4,A5,A6,A7,A8,A9)' : expects 11 arguments - 3 provided
1> c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind_mf2_cc.hpp(223) : see declaration of 'boost::bind'
1>c:\code\work\cmake-mds\server\gmmserver\domino\server\interface\dimime.cpp(210) : error C2780: 'boost::_bi::bind_t<Rt2,boost::_mfi::mf8<R,T,B1,B2,B3,B4,B5,B6,B7,B8>,_bi::list_av_9<A1,A2,A3,A4,A5,A6,A7,A8,A9>::type> boost::bind(boost::type<T>,R (__thiscall T::*)(B1,B2,B3,B4,B5,B6,B7,B8),A1,A2,A3,A4,A5,A6,A7,A8,A9)' : expects 11 arguments - 3 provided
1> c:\code\work\cmake-mds\build-vc9\third_party\boost\1.48.0\include\boost\bind\bind_mf2_cc.hpp(212) : see declaration of 'boost::bind'
向上に関連するコンパイルエラーが私に事実上読めないと役に立たないですので、私は誰かが私に何が起こっているかを把握することができます願っています。ここでは、リストの先頭からほんの一部です。前もって感謝します。 bind
に
標準ライブラリのアドレスを取るを選ぶ(メンバー)関数は、違法です。私は最後の(削除された)質問でなぜこのコメントを無視したのか分かりません。 – ildjarn
@ildjarn 2つの理由:1)あまりにも早く投稿しました。私のコードは駄目で、2)あなたは理由を説明しませんでした(標準などからの引用はありません)。また、あなたのコメントはコンパイラの失敗の理由を扱っていません。違法であっても、理由を知りたいのですが。 –
4つの異なる 'std :: string :: find'があります。コンパイラはどちらを選択する必要がありますか? –