Espero alguna guía con respecto a las plantillas de C++. He estado usando la biblioteca boost::asio
para la comunicación a través de TCP. Hasta ahora, he estado utilizando contenedores de almacenamiento integrados en la biblioteca boost :: asio. Por ejemplo:Boost asio ConstBufferSequence - Plantillas de C++
boost::array<char, 128> buf;
boost::system::error_code error;
size_t len = socket.read_some(boost::asio::buffer(buf), error);
para leer desde una toma de corriente, simplemente me envuelvo un búfer de tipo boost::asio::buffer
alrededor de mi objeto boost::array
. Esto funciona bien, pero ahora me gustaría trabajar en la dirección opuesta. Es decir, me gustaría volver a escribir en el socket, extrayendo datos de algunas clases de almacenamiento personalizadas que ya tengo. Mi pregunta es, ¿cómo puedo hacer sentido de los requisitos del tipo de plantilla necesarios para ser Wrappable por impulso :: :: asio del búfer, o más en general, el tipo de parámetro especificado por:
template<typename ConstBufferSequence>
std::size_t send(
const ConstBufferSequence & buffers
);
Las listas de la API requisitos de un ConstBufferSequence, pero no puedo entender nada de esto. ¿Alguien puede ayudarme a entender? ¿Qué métodos debería exponer el tipo que quiero pasar a la función "enviar"?
No es exactamente lo que quería, pero dejó las cosas más claras, no obstante. Gracias por la respuesta. :) –