none
C2664エラーについて RRS feed

  • 質問

  • C2664エラーについてですが、
    なぜ引数なしでこのエラーが出るのかわかりません。
    もしも原因や、助言のできる方がいたらよろしくお願いいたします。
    開発環境VC2005
    ちなみにこのエラーはVC7では問題なかったようです。


    エラー内容
    エラー    11    error C2664: 'std::_Vector_const_iterator<_Ty,_Alloc>::_Vector_const_iterator(const std::_Vector_const_iterator<_Ty,_Alloc> &)' : 1 番目の引数を 'int' から 'const std::_Vector_const_iterator<_Ty,_Alloc> &' に変換できません。(新しい機能 ; ヘルプを参照)    c:\cygwin\home\towayuki\boinc\client\seti_header.cpp    127

    問題のソースの一部

    SETI_WU_INFO::SETI_WU_INFO() :
       track_mem<SETI_WU_INFO>("SETI_WU_INFO"),
       data_class(0),
       start_ra(0),
       start_dec(0),
       end_ra(0),
       end_dec(0),
       true_angle_range(0),
       time_recorded(0),
       subband_center(0),
       subband_base(0),
       subband_sample_rate(0),
       fft_len(0),
       ifft_len(0),
       subband_number(0),
       nsamples(0),
       bits_per_sample(0),
       position_history(0),
       num_positions(0),
       beam_width(0)
    {                <ここででる
     data_type = DATA_ASCII;
     splitter_version=0;
     angle_range=0;
     tape_version[0]=0;
    }

    ヘッダ
    struct SETI_WU_INFO : public track_mem<SETI_WU_INFO> {
     int data_type;
     int data_class;
     int splitter_version;
     double start_ra;  // 0 .. 24
     double start_dec;  // -90 .. 90
     double end_ra;
     double end_dec;
     double angle_range;  // in degrees (only for 0.1 degree beam)
     double true_angle_range;  // in degrees
     double time_recorded; // in Julian form
     double subband_center; // Hz This parameter is deprecated in favor of
     //    subband_base
     double subband_base;        // center freq of bin 0.
     double subband_sample_rate;
     int fft_len;
     int ifft_len;
     int subband_number;
     receiver_config receiver_cfg;
     unsigned long nsamples;
     unsigned int bits_per_sample;
     std::vector<coordinate_t>::const_iterator position_history;
     int num_positions;         // number_of_positions in history array
     char tape_version[16];
     analysis_config analysis_cfg;
     int num_fft_lengths;
     int analysis_fft_lengths[32];
     double beam_width;
     ChirpFftTable_t chirp_fft_table[MAX_CFFT_PARAMS];
     const workunit *wu;
     SETI_WU_INFO();
     SETI_WU_INFO(const workunit &w);
     SETI_WU_INFO(const SETI_WU_INFO &s);
    };
    2006年6月22日 1:29

すべての返信

  • belution.comにも同じ内容で投稿されているようなので
    両方の掲示板間できちんと内容の同期をとって最終的な顛末の説明までしっかりされる事を期待します。
    マルチサイトポストが嫌われる原因は特定のサイトにのみ返信するようになって他のサイトは放置されて
    しまう為です。複数のサイトに同時に同じ内容を書き込んだ場合は書き込んだ側のフォローの手間が
    かなり煩雑になりますが、それを承知で書き込んだものとみなされますのでフォローしきれないのであれば、
    複数のサイトに同時に同じ内容を書き込むべきではありません。
    以降のフォローをよろしくお願いします。

    2006年6月23日 1:02
  • >ちなみにこのエラーはVC7では問題なかったようです。

    それならVC7でコンパイルすればいいだけじゃないのかな。VC8でやらなきゃいけない理由が無ければ。

    エラーメッセージにあるように、position_historyの初期化に失敗してるんでしょうね。手元にVC7はないのですが、VC6のvectorを見てみると、確かに通りそう。VC8のvectorを見ると通らなさそう。随分と実装変わってきてますねぇ。

     

    2006年6月23日 2:47
  • 「vector<T>::const_iterator を0でコンストラクトできない」と言うておるようです。
    できないでしょうね、そんなコンストラクタないから。VC7で通ったのは'たまたま'でしょう。

     

    2006年7月4日 6:53