Каталог c ++ Исключение итератора на VS2019 - изменились языковые настройки, что еще попробовать, изменилось ли оно на 2019? - PullRequest
0 голосов
/ 05 апреля 2020

Я перешел на vs2019 с 2017 года и столкнулся с парой мелких, но раздражающих проблем ...

одна из них - это фрагмент кода, который я разработал для итерации по каталогу и проталкивания пути к файлам в массив.

Я обновил языковые настройки до последнего черновика на страницах свойств, что позволило мне удалить :: экспериментальный в пространстве имен.

Код создается, но когда отладка и пошаговое выполнение выдают исключение, когда итератор пытается инициализировать путь к каталогу.

что мне не хватает, так как оно работало нормально пару дней go на vs2017 ..

screenshot!

У меня есть проверил библиотеку, и я думаю, что я предоставляю то, что она просит?

library

1 Ответ

0 голосов
/ 05 апреля 2020

Можете ли вы проверить ниже на вашем компьютере и отзывы (через комментарий), если он работал?

#include <iostream>
#include <filesystem>
#include <vector>
#include <iterator>

namespace fs = std::filesystem;

int main() {

    // The start path
    const fs::path startPath{ "C:\\temp\\" };

    std::vector<std::string> files{};

    // Get all path names as string
    std::transform(fs::directory_iterator(startPath), {}, std::back_inserter(files), [](const fs::directory_entry& de) { return de.path().string(); });

    // Output all files
    std::copy(files.begin(), files.end(), std::ostream_iterator<std::string>(std::cout, "\n"));

    return 0;
}

Поскольку это работает на моем компьютере с Microsoft Visual Studio Community 2019 Версия 16.5.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...