作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在正确设置这一行时遇到了问题:
boost::asio::async_write(serialPort,
boost::asio::buffer(
boost::asio::buffer_cast<const void*>(vector_.front()),
boost::asio::buffer_size(vector_.front())))
vector_
包含一些 boost::asio::const_buffers
std::vector<boost::asio::const_buffer> vector_;
这个东西有效,但我很确定有一种更优雅的方法可以做到这一点,如果没有,我想从有更多经验的人那里得到。
那么,这个方案还能改进吗?如果是,怎么办?
最佳答案
我想你正在寻找这个:
boost::asio::async_write(serialPort, make_buffer(vector_.front()) );
其中 make_buffer
定义为:
template<typename TBuffer>
boost::asio::buffer make_buffer(TBuffer & data)
{
auto buf = boost::asio::buffer_cast<const void*>(data);
auto size= boost::asio::buffer_size(data);
return boost::asio::buffer(buf, size);
}
顺便说一句,这是一个通用函数。
关于c++ - 如何正确使用带有 boost const_buffers vector 的 boost async_write?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13974811/
出于 PA:DSS 的目的,我需要确保 boost::asio::const_buffer(例如在 boost::asio::async_write 中)在超出范围时将被清零。 使用 STL 容器,我
我正在为我的应用程序使用 Boost 库 (boost_1_53_0)。感兴趣的领域是通过 UDP 发送消息的模块。查看下面的代码部分(我已经删除了不会影响功能的不必要的代码部分)。 int send
我在正确设置这一行时遇到了问题: boost::asio::async_write(serialPort, boost::asio::buffer(
我是一名优秀的程序员,十分优秀!