- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解什么是特征,例如 fstream
的 GNU 实现中的 typedef typename traits_type::off_type off_type
等表达式。
当我处理大于 2/4 GB 的文件时出现了这个问题。我发现使用适当的标志重新编译 STL 库通常可以解决大文件问题。
最佳答案
Traits 是一种向现有类型“添加”属性的方法。假设我们正在创建一个容器类型,它包含一个 typedef 来告诉它包含的数据类型。经典的方式是:
template <class T>
struct Cont { typedef T contained_type; }
这样做的缺点是我们必须创建我们的类来包含 typedef - 例如。假定 Cont::contained_type
类型的代码不能使用第三方容器和基本类型。所以我们引入一个traits struct,在这个过程中增加了一个间接:
template <class C>
struct container_traits; // this struct would contain the contained_type for container C
template <class T>
struct Cont { ... } // no typedef here
template <class T>
struct container_traits<Cont<T> >
{
typedef T contained_type; // by this, we say that the contained_type of Cont<T> is T
};
template <class T, unsigned N>
struct container_traits<T[N]>
{
// this is the advantage of traits - we can add information for arrays, which can have no member typedefs
typedef T contained_type;
};
另外,traits 模板可以作为使用它的算法的参数,这允许我们对单一数据类型使用不同的 traits(参见 std::string
类)。
也就是说,我认为特征与 64 位系统没有太大关系。
关于c++ - 有没有办法使用特征使 pos_type 和 off_type 成为 int64_t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4719382/
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 的台式机。 任务:随机二进
我是一名优秀的程序员,十分优秀!