首页 > 解决方案 > 无法将参数 1 从 'std::string' 转换为 'std::string &&'

问题描述

我正在尝试编写一个用于解析 config.ini 文件的函数,但我遇到了这个我以前从未真正遇到过的错误

'std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,std::basic_string<char,std::char_traits<char>,std::allocator<char>>> std::make_pair<std::string,std::string>(_Ty1 &&,_Ty2 &&)': cannot convert argument 1 from 'std::string' to 'std::string &&'

我的代码如下所示:

std::map<std::string, std::string> Iasynth::getConfigOptions(std::string const & configData)
{
std::map<std::string, std::string> result;
std::istringstream iss(configData);
bool key = true;
std::string keyData;
std::string valueData;

for (std::string token; std::getline(iss, token, '\n'); )
{
    for (std::string token; std::getline(iss, token, '='); )
    {
        if (key)
        {
            keyData = std::move(token);
            key = false;
        }
        else
        {
            valueData = std::move(token);
            result.insert(std::make_pair<std::string, std::string>(keyData, valueData));
            key = true;
        }
    }
}

return result;
}

标签: c++string

解决方案


推荐阅读