C++ c++;:在列表中存储ostream

C++ c++;:在列表中存储ostream,c++,iostream,C++,Iostream,我有一个函数 foo(ostream& os) 它写入传递给它的ostream 现在我想编写一个测试,因此希望将foo编写的内容存储到一个列表中 什么是干净的方法?用std::ostringstream实例填充列表: #include <sstream> #include <cassert> void foo(std::ostream& out) { out << "test1"; } // example implementation

我有一个函数

foo(ostream& os) 
它写入传递给它的
ostream

现在我想编写一个测试,因此希望将
foo
编写的内容存储到一个列表中


什么是干净的方法?

std::ostringstream
实例填充列表:

#include <sstream>
#include <cassert>

void foo(std::ostream& out) { out << "test1"; } // example implementation

void test_foo()
{
    std::ostringstream buffer;
    foo(buffer);
    assert(buffer.str() == "test1");
}
#包括
#包括

void foo(std::ostream&out){我的方法是将一个of流传递给函数,将输出写入一个文件,然后从文件读取到一个列表中;但这当然很难看…@user695652哪种列表?
std::list
实际上是?@πάνταῥεῖ 是的,std::list可能值得一提的是,编写测试不应涉及修改代码的内部结构。您应该测试的是将
ostream
对象传递给
foo
前后的状态