Visual Studio 2005 vectorでエラー 【チュートリアル】


Visual Studio 2005(SP1)のVisual C++にて開発を行っているときにエラーが発生したのでその解決方法などを。

スポンサーリンク

発生エラー

エラーとしはこのような感じ

c:\program files\microsoft visual studio 8\vc\include\vector(1323) : error C2825: ‘_MycontTy’: ‘::’ が後に続くときは、クラスまたは名前空間でなければなりません

c:\program files\microsoft visual studio 8\vc\include\vector(1416) : コンパイルされたクラスの テンプレート のインスタンス化 ‘std::_Vb_iter_base<_MycontTy>’ の参照を確認してください

with

[

_MycontTy=int

]

c:\program files\microsoft visual studio 8\vc\include\vector(1323) : error C2039: ‘difference_type’ : ‘global namespace'' のメンバではありません。

c:\program files\microsoft visual studio 8\vc\include\vector(1323) : error C2146: 構文エラー : ',' が、識別子 'difference_type' の前に必要です。

c:\program files\microsoft visual studio 8\vc\include\vector(1323) : error C2065: 'difference_type' : 定義されていない識別子です。

c:\program files\microsoft visual studio 8\vc\include\vector(1325) : error C2955: 'std::_Ranit' : クラス テンプレート を使用するには テンプレート 引数リストが必要です

c:\program files\microsoft visual studio 8\vc\include\xutility(565) : 'std::_Ranit' の宣言を確認してください。

c:\program files\microsoft visual studio 8\vc\include\vector(1380) : error C2825: '_MycontTy': '::' が後に続くときは、クラスまたは名前空間でなければなりません

c:\program files\microsoft visual studio 8\vc\include\vector(1380) : error C2039: 'size_type' : 'global namespace” のメンバではありません。

c:\program files\microsoft visual studio 8\vc\include\vector(1380) : error C2146: 構文エラー : ‘;’ が、識別子 ‘_Myoff’ の前に必要です。

c:\program files\microsoft visual studio 8\vc\include\vector(1380) : error C4430: 型指定子がありません – int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

c:\program files\microsoft visual studio 8\vc\include\vector(1403) : error C2825: ‘_MycontTy’: ‘::’ が後に続くときは、クラスまたは名前空間でなければなりません

c:\program files\microsoft visual studio 8\vc\include\vector(1403) : error C2327: ‘std::_Vb_iter_base<_MycontTy>::size_type’ : 型名、スタティック、または列挙子ではありません。

with

[

_MycontTy=int

]

c:\program files\microsoft visual studio 8\vc\include\vector(1403) : error C2039: ‘size_type’ : ‘`global namespace” のメンバではありません。

c:\program files\microsoft visual studio 8\vc\include\vector(1403) : error C2146: 構文エラー : ‘;’ が、識別子 ‘_My_actual_offset’ の前に必要です。

c:\program files\microsoft visual studio 8\vc\include\vector(1403) : error C2086: ‘int std::_Vb_iter_base<_MycontTy>::size_type’ : 再定義されました。

with

[

_MycontTy=int

]

c:\program files\microsoft visual studio 8\vc\include\vector(1404) : error C4430: 型指定子がありません – int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

c:\program files\microsoft visual studio 8\vc\include\vector(1404) : warning C4183: ‘_My_actual_offset’: 戻り値の型がありません。’int’ を返すメンバ関数とみなします。

ものすごくたくさんのエラーが発生しているが、これを発生するコードは、

たったこれだけである。重要な点は、#include <vector>とswap < int >だけである。

解決方法

単に、

とすればよいようだ。swap < int > というようなテンプレートを指定した書き方は間違えではないようだが、#include <vector>をしているときにはこのような問題が発生する。

スポンサーリンク
カテゴリー: チュートリアル   パーマリンク

コメントは受け付けていません。