Невозможно использовать функции <filesystem> - PullRequest
1 голос
/ 21 января 2020

Я пишу небольшое приложение для win32, и я должен использовать функции из файловых систем . Прочитав это из официальной документации и соответствующих примеров того же самого, я просто не могу понять, что именно этот фрагмент кода компилируется.

#include <iostream>
#include <cstdint>
#include <filesystem>

namespace fs = std::filesystem;

int main()
{
    fs::path dir = fs::temp_directory_path();
    fs::create_directories(dir / "abcdef/example");
    std::uintmax_t n = fs::remove_all(dir / "abcdef");
    std::cout << "Deleted " << n << " files or directories\n";
}

Я все время получаю следующие ошибки на go:

  1. Пространство имен "std" не имеет члена "файловая система"

  2. идентификатор "remove_all" не определен

  3. 'файловая система': не является именем класса или пространства имен

  4. 'remove_all': идентификатор не найден

Мои инструменты:

  1. Версия языка C ++: ISO C ++ 14 Standard (стандарт: c + +14)
  2. Набор инструментов платформы: Visual Studio 2019 (v142)
  3. Windows SDK: 10.0.18362.0

Буду признателен за любые подсказки о том, как решить с этими проблемами связаны проблемы

1 Ответ

3 голосов
/ 21 января 2020

Версия языка C ++: стандарт ISO C ++ 14 (стандарт: c ++ 14)

Библиотека <filesystem> была введена в C ++ 17. Вам необходимо обновить настройки компилятора, чтобы использовать C ++ 17 вместо C ++ 14.

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