【发布时间】:2018-12-26 08:30:22
【问题描述】:
我正在尝试在此代码中提取 dir_entry.path() 的值,并希望将其复制到 compFileName 中。 问题是我不断收到错误“compFileName 无法被隐式捕获,因为没有指定默认捕获模式。
我知道这与 lambda 函数有关,但我对它们的经验为零。 关于我应该如何解决这个问题以实现我想要的任何建议?
#include <filesystem>
#include <algorithm>
namespace fs = std::filesystem;
void search(const fs::path& directory, const fs::path& file_name, string &compFileName)
{
auto d = fs::recursive_directory_iterator(directory);
auto found = std::find_if(d, end(d), [&file_name](const auto & dir_entry)
{
string t = dir_entry.path().filename().string();
compFileName = t;
return t == file_name;
);
}
【问题讨论】:
标签: c++ visual-studio lambda path filesystems