У меня возникли проблемы с объявлением набора указателей STL на экземпляры классов. Более конкретно, у меня есть такой сценарий:
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<SimulatedDiskFile*, SimulatedDiskFile::comparator> FileSet;
Код выше не работает. Компилятор говорит, что не нашел члена функции SimulatedDiskFile :: comptor (). Если я помещу функцию с этим объявлением (вне структуры), компилятор говорит, что ожидал тип.
Теперь вот мои сомнения (не только одного, но, я думаю, связанные):
- Что такое правильное объявление для набора указателей?
- Как правильно объявить функцию сравнения, которая сравнивает указатели?
До публикации я действительно смотрел во многих местах, но обнаружил, что ссылки сбивают с толку и не совсем связаны с моим особым случаем (настолько глупо, насколько мне кажется, на самом деле, может быть, в этом причина) Так что любые хорошие ссылки тоже очень помогают!
Заранее спасибо!