我正在爲以離散數據包形式進行通信的串行設備編寫驅動程序。我還希望用戶能夠解釋來自串行流量轉儲文件的數據包。我打算在未來寫下其他類似的驅動程序。使用標準適當實現數據包流
通過查看可用的庫和標準後,我想實現std :: codecvt,它被iostream用來轉換爲寬字符,以提供一種方法來在字節流和數據包流之間進行轉換對象和處理asio,以便串行端口可以是標準的字節流。
對我來說,這似乎是最優雅的方法,這使得使用最多的標準,但我擔心它是codecvt的濫用。閱讀codecvt的文檔顯然只是爲了轉換字符編碼。但它似乎可以在更高級別的數據包對象中正常工作。
它誘使使用熟悉的插入和提取運算符來處理更高級別的數據,並且這種方法意味着需要最小的樣板代碼來實現這一目標。
這個想法是濫用codecvt嗎?您的經驗見解中,「正確」或「最佳」解決方案是什麼?