如何使用std::fpos
How to use std::fpos?
在最新c++标准草案的27.5.4中,我发现了一个奇怪的模板类std::fpos
,但我不知道它的目的是什么。(文档内容模糊,信息较少,难以理解。)
我正在为嵌入式系统编写我自己的迷你STL,我不能使用编译器提供的STL,因为它的不可移植性。所以,我必须明白这是什么意思。
例如,我想用c++ 11开发一个linux内核模块,在这种情况下,你不能直接使用任何编译器提供的c++标准库,无论你使用clang、gcc还是vc++。没有一个可以移植到linux内核。所以,我必须从头开始实现一个最小的STL。
是否有例子说明如何使用std::fpos
std::fpos<StateT>
用于表示流中的位置,包括转换状态,即std::mbstate_t
或它替换用户提供的字符类型。您可以使用std::pos<StateT>
来恢复可搜索流的位置,特别是文件流。它是流上各种查找操作的结果,用作查找绝对位置的查找操作的实参。
原则上,std::fpos<StateT>
仅表示流中的一个字节位置。对于在内部表示中传输的流,即不需要编码/解码的流,字节位置可能就是它存储的全部。当文件流进入图像时,位置可能是巨大的(即,比c++ 98中只需要32位的内置整数所能表示的要大;std::fpos<StateT>
从第一个版本开始就是标准的一部分),外部编码可能与内部编码不同,需要捕获编码状态。
相关文章:
- 使用std::multimap迭代器创建std::list
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从持续时间构造std::chrono::system_clock::time_point
- std::具有相同基类的类的变体
- std::向量与传递值的动态数组
- 使用std::vector的OpenCL矩阵乘法
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- std::condition_variable::wait()如何评估给定的谓词
- 如何获取std::result_of函数的返回类型
- std::原子加载和存储都需要吗
- 将对象移动到std::shared_ptr
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 使用一个考虑到std::map中键值的滚动或换行的键
- 如何从 std::atomic 中提取指针 T<T>?
- 为什么 std::unique 不调用 std::sort?
- 如何使用std::fpos
- 错误 C2666:"std::fpos<_Mbstatet>::运算符 +":2 个重载具有类似的转换