質問: c++のvectorについて教えてください。 c++のvectorについて教えてください。 現在悩んでいる問題について簡単に説明するために、テストコードを書きました。 #include 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 */
回答: main の返り値を void にするのはいかがなものかと思うな. あと, この形ではデフォルトコンストラクタはいらないんじゃないかな>#1. 確かに一部の関数ではデフォルト引数としてデフォルトコンストラクタ (が作る値) を要求するけど, ここではそのような関数は使われていないので. とはいえコンテナライブラリではコピーコンストラクタと代入演算子を要求するので, やっぱり駄目であることに変わりはない.