没有运营商" +"匹配这些操作数

时间:2016-02-14 01:33:23

标签: c++

for (TPathInfoList::iterator iter = pathInfoList.begin(); iter != pathInfoList.end(); ++iter)
{
    const TPathInfoList::value_type& path = *iter;

    EResult resultCode = MakeMSA(path, &msg);
    fs::path parentPath = path.parent_path();
    std::string shortPath = parentPath.parent_path().filename() + "\\" + parentPath.filename() + "\\" + path.filename();;

    tm t;
    time_t timer;
    timer = time(NULL);
    localtime_s(&t, &timer);

    printf("%04d/%02d/%02d %02d:%02d:%02d [%s] %s\n", 
        t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec,
        msg.c_str(), shortPath.c_str());
}

我尝试提升1.60并且我坚持这个错误。 我做错了什么?
http://prntscr.com/a2yync

1 个答案:

答案 0 :(得分:0)

错误消息屏幕截图显示parentPath.parent_path().filename()不是字符串而是filesystem::path

由于shortPathstring,我建议parentPath.parent_path().filename().string

std::string shortPath = parentPath.parent_path().filename().string() 
          + "\\" + parentPath.filename().string() 
          + "\\" + path.filename().string(); 

或使shortPath成为path并使用+=运算符连接