Здесь про рекурсивное удаление
Компилятор gcc преподнес сюрприз. Не хотел компилировать безобидный кусок кода:
int removeFolder(QDir & dir)То есть здесь идет рекурсивный вызов функции removeFolder(QDir &). В качестве параметра я передаю временный объект QDir, предполагая, что компилятор сможет получить ссылку на временный объект. Это не вызывает трудностей у MS Studio 2005, но повергает в шок gcc.
{
......
QString entryAbsPath = dir.absolutePath() + "/" + entry;
removeFolder(QDir(entryAbsPath));
......
}
Пришлось за него самому создавать объект. В итоге код пришлось переписать в :
int removeFolder(QDir & dir)
{
......
QString entryAbsPath = dir.absolutePath() + "/" + entry;
QDir dr(entryAbsPath);
removeFolder(dr);
......
}
int removeFolder(const QDir & dir)
ОтветитьУдалить