"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()
- 出来上がり。