Boost :: filesystem, std :: sort: проблема с сохранением информации о проходах сортировки
я пытаюсь использоватьstd::sort
на тип данных, который содержит информацию, прочитанную изboost::filesystem::dictionary_iterator
, Похоже, что как алгоритм сортировки сделалn
сравнения,n
количество файлов в каталоге, эта информация теряется, и я в конечном итоге segfaulting. Вальгринд говорит, что яиспользуя неинициализированные значения и делая недопустимые чтения.
Как я могу изменить свойFile
тип данных или алгоритмы, чтобы информация сохранялась между проходами?
#include
#include
#include
#include
#include
namespace fs = boost::filesystem;
struct File {
fs::path path;
fs::file_status status;
};
bool comp(const File& a, const File& b) {
static size_t count = 0;
std::cout < "Compare function called " < ++count < " times" < std::endl;
std::string a_filename = a.path.filename().native();
std::string b_filename = b.path.filename().native();
return a_filename.compare(b_filename);
}
int main() {
std::vector