|
分類:[C/C++]
分類:[C/C++]
はじめまして、お世話になります。 現在、VisualStudio2005→VisualStudio2008へソリューションを変換し、 ビルドを通す際のビルドエラーで悩んでおります。
ソースファイルは元々VC++6.0のMFCで作成されたものを、 過去にVisualStudio2005(VC++8.0)に変換して修正を加えていたようで、 今回はVS2005からVS2008(VC++9.0)へ変換を行うことになりました。
手順としてVS2005のソリューションファイルをVS2008で開き、 変換マネージャーに従ってVS2008形式への変換を行った後、 ビルドを通そうとすると下記のエラーが発生します。
VC++の経験自体が少ないため資料を探し、色々と試しているのですが、 内容的にVSのutilityが間違っているとは思えず、 先の見えない状態に陥っています。
申し訳ありませんが、ご助力いただけないでしょうか?
■エラー内容 error C2558: class 'std::auto_ptr<_Ty>' : コピー コンストラクタが使用できないか、'explicit' として宣言されています。 c:\program files\microsoft visual studio 9.0\vc\include\utility ※エラー箇所に飛んでみると、utility内のpairのコピーコンストラクタを指しています。
pair() : first(_Ty1()), second(_Ty2()) { // construct from defaults }
pair(const _Ty1& _Val1, const _Ty2& _Val2) : first(_Val1), second(_Val2) →この部分 { // construct from specified values }
■環境 Visual Studio 2008 Pro
ソリューション構成
aaa.sln xxx.vcproj→画面に表示する内容を処理するソース yyy.vcproj→日本語画面用の画面ソース zzz.vcproj→英語画面用の画面ソース
■試したこと ・下記のようにmapとqueueにpairを入れ込んでおり、 pairをvectorに入れ込む際にエラーが発生するという情報があったため、 該当箇所をコメントアウトしてビルド→エラーのまま内容も変わらず。
std::map<CString, std::pair<CFile, CString>> m_File; std::queue<std::pair<int, CString> > m_Queue;
・別プロジェクトを作成し、 pairを使用している変数宣言と同じ形の記述でビルド→正常にビルド
・別プロジェクトを作成し、 ヘッダーファイルとソースファイルをコピーしビルド→エラーのまま内容も変わらず。
|