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

Inline char to std::string conversion

是否有基于给定 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's constructor:

的第二次重载
func(std::string(1, *rit))