提升asio ConstBufferSequence - c ++模板

J T*_*J T 7 c++ templates boost boost-asio

我希望有关C++模板的一些指导.我一直在使用该boost::asio库进行TCP通信.到目前为止,我一直在使用内置在boost :: asio库中的存储容器.例如:

boost::array<char, 128> buf;
boost::system::error_code error;
size_t len = socket.read_some(boost::asio::buffer(buf), error);
Run Code Online (Sandbox Code Playgroud)

要从套接字读取,我只需boost::asio::buffer在我的boost::array对象周围包装一个类型的缓冲区.这很好,但现在我想反向工作.也就是说,我想回写插槽,从我已经拥有的一些自定义存储类中提取数据.我的问题是,如何理解boost :: asio :: buffer可以包装的模板类型要求,或者更一般地说,指定的参数类型:

template<typename ConstBufferSequence>
std::size_t send(   
   const ConstBufferSequence & buffers
);
Run Code Online (Sandbox Code Playgroud)

API列出的要求ConstBufferSequence,但我不能让这种正面或反面.有人可以帮我理解吗?我想要传递给"发送"函数的类型需要公开哪些方法?

ild*_*arn 6

boost::asio::buffer返回实现ConstBufferSequenceMutableBufferSequence概念的对象; 它并不指望实现它们.此处buffer列出您允许传递的具体类型.