<分区>
简而言之:在一行 C++ 代码中,我想流式传输字符串并将流内容分配给字符串变量:
int i = 1;
double d = 3.2;
std::string str = StringBuilder() << "i=" << i << " and d=" << d;
- 这可以做到吗?
- 类
StringBuilder
的实现情况如何? - 如何扩展
std::string
以接受来自StringBuilder
的赋值? - 实用吗?
标签 c++
<分区>
简而言之:在一行 C++ 代码中,我想流式传输字符串并将流内容分配给字符串变量:
int i = 1;
double d = 3.2;
std::string str = StringBuilder() << "i=" << i << " and d=" << d;
StringBuilder
的实现情况如何?std::string
以接受来自 StringBuilder
的赋值?最佳答案
这是另一种方法:改用函数。
namespace impl
{
std::stringstream ss;
const std::stringstream::fmtflags stdfmt = ss.flags();
}
template <typename ...P> std::string make_str(const P &... params)
{
impl::ss.clear();
impl::ss.str("");
impl::ss.flags(impl::stdfmt);
(impl::ss << ... << params);
return impl::ss.str();
}
int i = 1;
double d = 3.2;
std::string str = make_str("i=", i, " and d=", d);
关于C++ 一行字符串生成器类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49926979/