前提
1週間前に同様な質問をしたものです。今回のパターンはいかがでしょうか。
実現したいこと
コンパイルエラーになります。コンパイルが通るようにしたいです。
発生している問題・エラーメッセージ
VC++2019
C2676 二項演算子'==';'Test'は、この演算子または定義済の演算子に適切な型への変換の定義を行いません。
該当のソースコード
#include <iostream> #include <vector> class Test { public: Test(int data) : m_iData(data) {} ~Test() {} private: int m_iData; }; class CTest { public: static CTest* GetInstance() { return m_pInstance; } void Add(Test Data) { m_Test.push_back(Data); } void Erase(Test Data) { auto ite = std::find(m_Test.begin(), m_Test.end(), Data); if (ite != m_Test.end()) m_Test.erase(ite); } private: CTest() {} ~CTest() {} static CTest* m_pInstance; std::vector<Test> m_Test; }; ### 試したこと 前回のご回答を参考に二項演算子の処理を追加しましたが、解決しませんでした。 ### 補足情報(FW/ツールのバージョンなど) VC++ 2019
> 前回のご回答を参考に二項演算子の処理を追加しましたが
該当するコードはどれでしょうか?
検索ワード「C++ operator」などで検索すると、膨大なページがヒットしますので、ご自身がわかりやすいと思うサイトを参考にされてみてはどうでしょうか。
もし前回の回答を受けて作成したoperator==が上手く動かないのであったとしても、その状態のコードをここに掲載してアドバイスをもらった方が早く解決するのではないかと思います。
実際に operator== を定義するだけで通るので質問者のどこが間違っているのかは間違っているものを提示されないとわからんですね……。
> 今回のパターンはいかがでしょうか。
前回の解決法で解消しなかったのですか?
ありがとうございます。内容理解しました。お騒がせしました。
回答1件
あなたの回答
tips
プレビュー