【发布时间】:2016-11-30 00:55:34
【问题描述】:
我正在为以离散数据包形式进行通信的串行设备编写驱动程序。我还希望用户能够解释来自串行流量转储文件的数据包。我计划在未来编写其他类似的驱动程序。
在查看了可用的库和标准之后,我正在考虑实现 std::codecvt,iostream 使用它来转换为宽字符,以提供一种在字节流和数据包对象流之间进行转换的方法, 并处理 asio 使得串口可以是标准的字节流。
这对我来说似乎是最优雅的方法,它充分利用了标准,但我担心这是对 codecvt 的滥用。阅读 codecvt 的文档显然只是为了转换字符编码。但它似乎适用于更高级别的数据包对象。
使用熟悉的插入和提取运算符来处理更高级别的数据是很诱人的,而这种方法意味着需要最少的样板代码来实现这一点。
这个想法是对 codecvt 的滥用吗?根据您的经验,这里的“正确”或“最佳”解决方案是什么?
【问题讨论】:
标签: c++ boost-asio