内联字符到 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))
是否有基于给定 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))