- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
streampos
之间有什么区别?和 pos_type
, streamoff
和 off_type
, 除了它们的定义不同。我应该将 basic_stream<>::seek
与什么一起使用?的功能?
最佳答案
std::basic_istream
和 std::basic_ostream
两者都采用两种模板类型,CharT
和 Traits
.给定一个派生自基本流之一的 A 类,Traits
数据类型可以检索为
A::traits_type
根据C++标准的§21.2,该数据类型必须提供以下成员类型:
char_type // must be identical to CharT of the basic-stream
off_type
pos_type
(以及一些与当前问题无关的其他数据类型)。鉴于 way the std::basic_istream<>::seekg()
method is defined , off_type
的预期含义和 pos_type
是:
pos_type
用于流中的绝对位置off_type
用于相对位置所以如果你想使用绝对版本的seekg()
,您应该声明的数据类型是 A::pos_type
(与 A::traits_type::pos_type
相同)。对于相对版本,它是 A::off_type
.
关于 std::streampos
和 std::streamoff
: 这些也由标准定义为用于 traits_type
的默认 版本的数据类型.换句话说,如果您没有明确指定 Traits
模板参数,A::pos_type
事实上会是std::streampos
, 和 A::off_type
事实上会是std::streamoff
.
如果您创建自己的 Traits
版本 并希望将它与标准库模板一起使用,例如 std::basic_istream<>
等等,您必须包含 pos_type
的类型定义和 off_type
(以及许多其他数据类型),并确保它们符合标准的 §27.2.2 和 §27.3。
关于c++ - streampos 和 pos_type、streamoff 和 off_type 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133680/
This是函数的定义 basic_istream::tellg()在VS2010中。请注意,该函数返回类型为 pos_type 的变量.但是,当我替换类型时 streamoff在下面给出的示例中使用,
在我的一个项目中,我必须缓存有关在大文件中找到的某些数据 block 的位置信息。我已经实现了一个围绕 std::basic_istream::pos_type 构建的小型 API放置在 map 中。
我试图了解什么是特征,例如 fstream 的 GNU 实现中的 typedef typename traits_type::off_type off_type 等表达式。 当我处理大于 2/4 GB
streampos 之间有什么区别?和 pos_type , streamoff和 off_type , 除了它们的定义不同。我应该将 basic_stream<>::seek 与什么一起使用?的功能
当尝试以跨平台方式处理大文件 (2/4GB) 时,将 pos_type 转换为 uint64_t 是否安全? 目标平台:运行当前 Linux 发行版、Windows、Mac 的台式机。 任务:随机二进
我是一名优秀的程序员,十分优秀!