Итак, я пытаюсь прочитать фрагмент кода, который выглядит так:
auto runFile(const std::string &path)
{
const std::string source = ([&]() {
std::ifstream file(path);
return std::string{std::istreambuf_iterator<char>{file}, std::istreambuf_iterator<char>{}};
})();
}
Может ли кто-нибудь объяснить мне, что именно происходит в этой строке:
return std::string{std::istreambuf_iterator<char>{file}, std::istreambuf_iterator<char>{}};
Я понимаю, что это должен вернуть строку, которая состоит из диапазона между двумя итераторами, но я не совсем понимаю, какой диапазон выбирается здесь.
Если бы кто-то мог объяснить мне, как в первую очередь работает istreambuf, это тоже было бы здорово!
Чем проще ответ, тем лучше, поскольку я новичок в c ++