Ich habe Probleme beim Deklarieren eines STL-Sets von Zeigern auf Klasseninstanzen. Genauer gesagt habe ich dieses Szenario:
class SimulatedDiskFile {
private:
// ...
public:
// ...
struct comparator {
bool operator () (SimulatedDiskFile* const& file_1, SimulatedDiskFile* const& file_2) {
return ((*file_1)->getFileName() < (*file_2)->getFileName());
}
};
}
typedef set FileSet;
Der obige Code funktioniert nicht. Der Compiler sagt, er habe keine Memberfunktion SimulatedDiskFile::comparator() gefunden. Wenn ich die Funktion mit dieser Deklaration (außerhalb des Structs) platziere, sagt der Compiler, er habe einen Typ erwartet.
Jetzt kommen hier meine Zweifel (nicht nur einen, aber verwandt, denke ich):
- Was ist die richtige Deklaration für ein Set von Zeigern?
- Was ist die richtige Deklaration für eine Vergleichsfunktion, die Zeiger vergleicht?
Ich habe viele Informationen gesucht, bevor ich gepostet habe, aber die Referenzen waren verwirrend und nicht ganz auf meinen speziellen Fall bezogen (so banal und trivial wie ich denke, dass er ist - tatsächlich ist dies vielleicht sogar die Ursache). Daher sind gute Links auch sehr hilfreich!
Vielen Dank im Voraus!