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
前后的状态