是否有基于给定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)
答案 0 :(得分:5)
自C ++ 11 以来最简洁的方法是通过初始化列表构建:
func({*rit})
或者如果您需要明确指定类型(对于函数模板):
func(std::string{*rit})
对于pre-C ++ 11 ,它是std::string
's constructor的第二次重载:
func(std::string(1, *rit))