Я скопировал пример кода на странице directory_iterator , так что вот что у меня есть:
#include "pch.h" //for visual studios benefit
#include <fstream>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
fs::create_directories("sandbox/a/b");
std::ofstream("sandbox/file1.txt");
std::ofstream("sandbox/file2.txt");
for (auto& p : fs::directory_iterator("sandbox"))
std::cout << p << '\n'; //this line on the first '<<' is where the error occurs
fs::remove_all("sandbox");
return 0; //included by me
}
И сообщение об ошибке:
Severity Code Description Project File Line Suppression State
Error (active) E0349 no operator "<<" matches these operands
Поскольку я новичок в C ++, я мог ошибиться, но мое понимание ошибки в основном состоит в том, что p
в моем случае - это то, что не может быть выведено на консоль с использованием cout
.
Пример работает, если я запускаю его прямо на странице, поэтому в этом нет ничего плохого, чего я тоже не ожидал.Итак, вопрос в том, почему я вижу эту ошибку?
Я использую последнюю версию Visual Studio вместе с C ++ 2017.