内联字符到std::字符串的转换

Inline char to std::string conversion

本文关键字:字符串 转换 std 字符      更新时间:2023-10-16

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

我之所以这么问,是因为我想直接在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)

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

func({*rit})

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

func(std::string{*rit})

对于C++11之前的版本,它是std::string的构造函数的第二个重载

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