boostのptr_listのソートが上手くいかないです

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
nullptr
記事: 239
登録日時: 14年前

boostのptr_listのソートが上手くいかないです

#1

投稿記事 by nullptr » 14年前

失礼します。質問させてください。
boostライブラリのptr_listコンテナ(ポインタ特化リスト型コンテナ)に自作クラスを入れ、ソートしようとしたのですがエラーが出て上手くいきません。
とりあえず<や>やら==やらの定義はしてみたのですが。
以下がエラーです。どのあたりに問題があるのかよくわかりません。必要であればソースも貼り付けます。

ひとまず、以下のエラーが何のエラーなのか教えて頂けませんでしょうか?


1> BattleMgr.cpp
1>c:\program files\microsoft visual studio 10.0\vc\include\xfunctional(125): error C2678: 二項演算子 '<' : 型 'const CBaseChara' の左オペランドを扱う演算子が見つかりません (または変換できません) (新しい動作; ヘルプを参照)。
1> c:...\visual studio 2010\projects\test\basechara.h(89): 'bool CBaseChara::operator <(const CBaseChara &)' の可能性があります。
1> 引数リスト '(const CBaseChara, const CBaseChara)' を一致させようとしているとき
1> c:\program files\microsoft visual studio 10.0\vc\include\xfunctional(124): クラス テンプレート のメンバー関数 'bool std::less<_Ty>::operator ()(const _Ty &,const _Ty &) const' のコンパイル中
1> with
1> [
1> _Ty=CBaseChara
1> ]
1> c:\program files\boost\boost_1_47\boost\ptr_container\ptr_list.hpp(65) : コンパイルされたクラスの テンプレート のインスタンス化 'std::less<_Ty>' の参照を確認してください
1> with
1> [
1> _Ty=CBaseChara
1> ]
1> c:\program files\boost\boost_1_47\boost\ptr_container\ptr_list.hpp(64): クラス テンプレート のメンバー関数 'void boost::ptr_list<T>::sort(void)' のコンパイル中
1> with
1> [
1> T=CBaseChara
1> ]
1> c:...\battlemgr.h(9) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::ptr_list<T>' の参照を確認してください
1> with
1> [
1> T=CBaseChara
1> ]
1>
1>ビルドに失敗しました。
 
 
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
?
Is the は :
order C++? ✜
     糸冬   
  ――――――――
  制作・著作 NHK
 
 

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: boostのptr_listのソートが上手くいかないです

#2

投稿記事 by beatle » 14年前

勘ですが,operator <をconstな関数として定義していないのでは?

コード:

class Hoge
{
public:
    bool operator <(const Hoge& rhs) const
    {
        // something
    }
};
関数の引数リストの後ろにつけるconstがミソ.

アバター
nullptr
記事: 239
登録日時: 14年前

Re: boostのptr_listのソートが上手くいかないです

#3

投稿記事 by nullptr » 14年前

beatle さんが書きました:勘ですが,operator <をconstな関数として定義していないのでは?
うきゃー(;・∀・)、ま、まさかこんな初歩的ミスを犯しているとは!!orz
本当にありがとうございました
 
 
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
?
Is the は :
order C++? ✜
     糸冬   
  ――――――――
  制作・著作 NHK
 
 

閉鎖

“C言語何でも質問掲示板” へ戻る