C++のvectorについて教えてください。
現在悩んでいる問題について簡単に説明するために、テストコードを書きました。
#include <vector>
class IntType
{
private:
int num;
public:
IntType( int n ):num( n ){};
};
std::vector< IntType > IntVector;
void main()
{
}
このコードをDebug版でコンパイルすると
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(285) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : テンプレート 引数を 'const std::reverse_iterator<_RanIt> &' に対して 'const size_t' から減少できませんでした
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 'std::operator <' の宣言を確認してください。
のようなエラーが出ます。
しかし、Release版でコンパイルするとコンパイルは通ります。
Debug版でコンパイルを通すにはどのようなコードを追加すればよいでしょうか?
知恵を貸してください。
よろしくおねがいします。
/**
VisualStudio2008 AcademiEdition
*/
No.1ベストアンサー
- 回答日時:
vectorに指定するクラスにはデフォルトコンストラクタが必要です。
class IntType
{
private:
int num;
public:
IntType(void):num(0) {};
IntType( int n ):num( n ){};
};
とすると、おそらくコンパイルできるようになるはず。
多分そのコードだとReleaseでも通らないと思うんですけどね...
No.3
- 回答日時:
main の返り値を void にするのはいかがなものかと思うな.
あと, この形ではデフォルトコンストラクタはいらないんじゃないかな>#1. 確かに一部の関数ではデフォルト引数としてデフォルトコンストラクタ (が作る値) を要求するけど, ここではそのような関数は使われていないので.
とはいえコンテナライブラリではコピーコンストラクタと代入演算子を要求するので, やっぱり駄目であることに変わりはない.
No.2
- 回答日時:
他のところが影響しているのではないでしょうか。
拡張子が.cになっているとか。
VisualStudio2008 Express editionでは何の変更も加えずにDebug/Releaseともコンパイルが通ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# メインプログラムに#include <algorithm>を書いて、 そのメインプログラムが // 3 2023/05/02 11:24
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# このプログラミング誰か教えてください 9 2022/04/22 18:50
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- C言語・C++・C# このプログラミング誰か教えてください。 2 2022/04/22 18:48
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
#If True Then の # って何??
-
プレコンパイルの意味を教えて...
-
c言語です コンパイルした時に...
-
C言語をコンパイルするとコンピ...
-
VS2010環境で2点ほど質問
-
実行後にコンパイルに失敗しま...
-
Verilog_HDLでのdefineとifdef
-
math.hに含まれる関数が使えない
-
すべてのリビルド: 0 正常、 0 ...
-
gcc バージョン違いによるコン...
-
#ifdefの意味、使用方法が載っ...
-
プログラム Arduino
-
同じEXE・同じファイルで解析結...
-
vba コンパイル
-
NASMとMASMの違い
-
共有ライブラリの内容確認について
-
OpenSSLについて。実行できませ...
-
ビープ音が鳴りません・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
math.hに含まれる関数が使えない
-
C言語をコンパイルするとコンピ...
-
実行後にコンパイルに失敗しま...
-
ビープ音が鳴りません・・・
-
c言語です コンパイルした時に...
-
C#で char型とstring型の比較で...
-
すべてのリビルド: 0 正常、 0 ...
-
共有ライブラリの内容確認について
-
C言語で作ったらWindowsでもMac...
-
Verilog_HDLでのdefineとifdef
-
<math.h>ヘッダを入力している...
-
gcc コンパイル killed
-
64ビットのlinuxで32ビットメモ...
-
MVSマシンで0C7でABENDしたので...
-
[COBOL] ソースの復帰
-
プレコンパイルの意味を教えて...
-
libsshのコンパイルエラー
-
Visual Basic.NETの処理速度は6...
おすすめ情報