1

VS 2010 C++ プロジェクトをコンパイルすると、ファイル c:\program files\microsoft visual studio 10.0\vc\include\utility で次の箇所でエラーが発生します

template<class _Other1,
    class _Other2>
    _Pair_base(_Other1&& _Val1, _Other2&& _Val2)
    : first(_STD forward<_Other1>(_Val1)),
        second(_STD forward<_Other2>(_Val2))
    {   // construct from moved values
    }

エラーの後に別のエラー C2439 'std::_Pair_base..::first element could not be convert' が続きます

(すべてのエラーはドイツ語から翻訳されているため、英語では少し異なるように聞こえる場合があります)

VS 2010 で AxCrypt プロジェクトをコンパイルしようとしていますが、プロジェクト ファイルは VS 2008 から自動的に変換されています (ただし、そこで動作するかどうかはわかりません。VS 2010 しかありません)。

4

2 に答える 2

1

問題は、使用されている Crypto++ ライブラリにあり、VS 2010 でコンパイルする前に 2 つの小さな変更が必要でした。

a) pubkey.h line 243: 
return HashIdentifier(NULL, 0); 
-> 
return HashIdentifier((const byte*)NULL, 0); 
b) zdeflate.cpp line 389 
#if defined(_STDEXT_BEGIN) && !(defined(_MSC_VER) && _MSC_VER < 1400) 
&& !defined(_STLPORT_VERSION) 
-> 
#if defined(_STDEXT_BEGIN) && !(defined(_MSC_VER) && (_MSC_VER < 1400 
|| _MSC_VER >= 1600)) && !defined(_STLPORT_VERSION) 

詳細はこちら: http://groups.google.com/group/cryptopp-users/browse_thread/thread/714f3ec6287a50b1

于 2011-07-26T08:49:31.797 に答える
0

このコードは、このエラーを再現できます。

pair<int,char*> aPair(10,20);

second指定した型は ですが、に変換できないchar*を渡しています。intchar*

これは、発生する可能性のあるエラーの単純化されたサンプルであることに注意してください。おそらくあなたはを使用していmapます。

于 2011-07-25T15:08:19.187 に答える