C ++将n个字符串添加到字符串流

时间:2018-12-21 20:46:17

标签: c++

我有点陷入C ++ 11之前的时代。我该如何编写一个将n个字符串附加到ostreamstream的函数?

void Foo(std::string first_part, ...){
    std::ostringstream oss;
    oss << first_part << ...; // cant do it
    for(int i = 0; i < ....length(); i++){ // :|
    }
}

如果我生活在一个完美的世界中,我可以做到以上几点。在C ++ 11之前,还有其他方法可以循环通过...参数吗?

1 个答案:

答案 0 :(得分:1)

对不起,但这不能直接完成(至少不能在可移植代码中完成)。

尝试将非平凡类型(包括std :: string)作为可变参数传递给未定义行为。

如果您想做类似的事情,可以(例如)传递多个字符串的地址,而不是尝试自己传递字符串。

如果这样做,您仍然需要解决另一个细节:您需要告诉接收函数期望的字符串(地址)数。

从那里,接收函数将使用va_startva_argva_end来检索数据并由它们来处理。