此问题旨在使用std::byte标准输入输出.
是否有计划增加适当的功能重载read(_bytes)和write(_bytes)到的接口basic_istream<CharT>,并basic_ostream<CharT>在将来的标准是什么?有什么理由反对呢?我知道CharT*应该保留-overloads.我该怎么办std::byte?我目前在我的项目功能中定义
std::istream& read(std::istream&, std::byte*, std::streamsize)
std::ostream& write(std::ostream&, const std::byte*, std::streamsize)
Run Code Online (Sandbox Code Playgroud)
这些使用reinterpret_cast<>到char*RESP.const char*但我相信这取决于它的大小char.我错了吗?是char永远1 byte?
我试图制作,std::basic_istream<std::byte>但它缺少std::char_traits<std::byte>等等.有人做过这种事吗?
别.
无论您是在"文本模式"还是"二进制模式"下运行,您从根本上在做什么都是在角色上进行操作.
std::byte不是为了这个目的,这就是为什么它没有这些功能.事实上,故意介绍不要拥有它们!
enum class byte : unsigned char {} ;(自C++ 17起)
std::byte是一种独特的类型,它实现了C++语言定义中指定的byte概念.像
char和unsigned char,它可以被用于访问由其他对象(占用原始内存对象表示),但不同于那些类型,它不是一个字符类型并且不是算术类型.字节只是一个位集合,只为它定义了按位逻辑运算符.
有人做过这种事吗?
不,正如上面所探讨的那样,每个人都故意不这样做.
使用char或unsigned char,正如我们几十年来所做的那样!
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |