在以下代码中,
class MonitorResult {
public:
void putDir(std::string && dir) { }
};
void listDir(boost::filesystem::path && dir, MonitorResult & result) {
for(boost::filesystem::directory_iterator it(dir);
it != boost::filesystem::directory_iterator(); ++it) {
if(boost::filesystem::is_symlink( it->path()) ) {
continue;
}
else if(boost::filesystem::is_directory(it->path())) {
result.putDir(it->path().string() ); // Error here
}
}
}
错误:没有用于调用
MonitorResult::putDir(const string&)
的匹配函数 候选人是void MonitorResult::putDir(std::string&&)
我没有收到std::string
,只是string
。如何解决类型错误?感谢。