C++ 一行字符串生成器类

标签 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/

相关文章:

c++ - 如何将字体文件集成(硬编码)到我的程序中?

c++ - 通过 typedef template<typename T, T> 强制模板实例化 - 为什么它有效?

C++ xstddef 编译器错误

c++ - 如何动态链接grpc库c++?

c# - 使用 C# 替换 native .exe 中的字符串

c++ - GetProcAddress 失败

c++ - Boost 管的用途是什么?为什么它很重要?

c++ - 将 preincrement 结果强制转换为 void 的原因

c++ - 循环内的内联汇编

c++ - UCHAR 或 WCHAR 用于通信缓冲区