失礼します。質問させてください。
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>ビルドに失敗しました。
boostのptr_listのソートが上手くいかないです
boostのptr_listのソートが上手くいかないです
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
糸冬
――――――――
制作・著作 NHK
――――――――
制作・著作 NHK
Re: boostのptr_listのソートが上手くいかないです
うきゃー(;・∀・)、ま、まさかこんな初歩的ミスを犯しているとは!!orzbeatle さんが書きました:勘ですが,operator <をconstな関数として定義していないのでは?
本当にありがとうございました
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
糸冬
――――――――
制作・著作 NHK
――――――――
制作・著作 NHK