Appena trascorso circa un'ora cercando di capire perché ottengo 20 messaggi di errore del tipo "Semantic issue - no matching function for call to 'swap'"
quando provo a creare la classe seguente (in XCode).sort() - Nessuna funzione di corrispondenza per la chiamata a "scambio"
test.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);
};
test.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
}
La maggior parte delle persone con lo stesso problema sembrano aver fatto il loro algoritmo di un membro della classe, invece di un membro statico , ma questo non è chiaramente il problema qui.
Spero che l'implementazione di "algo" sia solo un segnaposto. L'ordinamento non funzionerà (correttamente) con un comparatore che permetta di 'a1
anderas
Sì. Ho modificato il codice in modo che le persone non si blocchino su dettagli irrilevanti ... – BadCash