gpt4 book ai didi

C++ iostreams问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:07 26 4
gpt4 key购买 nike

我现在正在研究 boost::iostreams我正在寻找一种方法来创建一个迭代某些 container<char> 的流.

现在我有适用于 std::vector<char> 的代码,但它为它做,因为我写了std::vector -特定代码。

我正在做以下事情:

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()));
}

哪里LoadImpl(...)描述如下:

template <class Object
void LoadImpl(Object& object, std::istream& stream) { ... }

并用于使用某些特定的 stream 来包装序列化/反序列化.

你能给我一些关于如何制作 Load 的建议吗?例程更通用?比方说,我希望有能力替代 std::vector<char>只要给它一些std::string容器。

最佳答案

与其将容器作为参数传递给您的函数,不如使用标准库采用的方法并使用迭代器呢?

您的函数将基于迭代器类型而不是容器类型进行模板化,并且将采用开始和结束迭代器而不是容器。然后,遍历您提供的任何容器类型的范围就是一件简单的事情。

关于C++ iostreams问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com