内联char到std :: string的转换

时间:2015-06-24 04:50:56

标签: c++ string c++11 type-conversion

是否有基于给定std::string构建char的内置方法?

我问这个的原因是因为我想直接在if语句中进行函数调用:

// Given function prototype
bool func(std::string s);

for(auto rit = s.rbegin(); rit != s.rend(); ++rit)
{
    if(func(*rit))
    {
        //
    }
}

我尝试了以下内容:

std::string(*rit)
static_cast<std::string>(*rit)

1 个答案:

答案 0 :(得分:5)

自C ++ 11 以来最简洁的方法是通过初始化列表构建:

func({*rit})

或者如果您需要明确指定类型(对于函数模板):

func(std::string{*rit})

对于pre-C ++ 11 ,它是std::string's constructor的第二次重载:

func(std::string(1, *rit))