我现在潜入boost::iostreams
,我正在寻找一种方法来创建一个流,超过一些container<char>
迭代。C++输入输出流问题
现在我有一个std::vector<char>
工作的代码,但它确实ONLY它,因为我写std::vector
特异性代码。
我做以下的事情:
template <class Object
void LoadImpl(Object& object, std::istream& stream) { ... }
和用于包装序列化/使用一定的反序列化stream
:其中LoadImpl(...)
描述如下方式
template <class Object, class Container>
void Load(Object& object, const Container& container) {
using namespace boost::iostreams;
// Create a stream that iterates over vector and use it in
// the following procedure
LoadImpl(object, stream<array_source>(&container[0], container.size()));
}
。
能给我关于如何使Load
例行更通用的任何建议吗?比方说,我希望有能力用std::vector<char>
代替它,只要一些std::string
容器。
几个问题。您不使用容器输入参数,而是使用精简的参数“source”。他们应该是一样的吗? 你能写一些你想如何调用负载的例子吗? – 2010-06-24 17:07:16