sort() - 'swap' の呼び出しに一致する関数がありません 質問する

sort() - 'swap' の呼び出しに一致する関数がありません 質問する

"Semantic issue - no matching function for call to 'swap'"次のクラスを (XCode で) ビルドしようとすると、なぜこのようなエラー メッセージが 20 個も表示されるのかを解明するのに、約 1 時間かかりました。

テスト.h

#include <iostream>
#include <string>
#include <vector>


class Test{
    std::vector<std::string> list;

    void run() const;
    static bool algo(const std::string &str1, const std::string &str2);
};

テスト.cpp

#include "test.h"


void Test::run() const {
    std::sort( list.begin(), list.end(), algo );
}


bool Test::algo(const std::string &str1, const std::string &str2){
    // Compare and return bool
}

同じ問題を抱えている人のほとんどは、アルゴリズムを静的メンバーではなくクラス メンバーにしているようですが、明らかにそれはここでの問題ではありません。

ベストアンサー1

これは非常に単純な問題であることが判明しましたが、見つけるのはそれほど明白ではありません (エラー メッセージもあまり役に立ちません)。

const宣言を削除しますrun()- 出来上がり。

おすすめ記事