gpt4 book ai didi

c++ - 特征类是如何工作的,它们是做什么的?

转载 作者:IT老高 更新时间:2023-10-28 13:20:58 27 4
gpt4 key购买 nike

我正在阅读 Scott Meyers 的 Effective C++ .他在谈论特征类,我知道我需要它们在编译时确定对象的类型,但我无法理解他对这些类实际上做什么的解释? (从技术角度)

最佳答案

也许你期待某种使类型特征起作用的魔法。在这种情况下,请失望——没有魔法。类型特征是手动为每种类型定义的。例如,考虑 iterator_traits ,它为迭代器提供 typedef(例如 value_type )。

使用它们,您可以编写

iterator_traits<vector<int>::iterator>::value_type x;
iterator_traits<int*>::value_type y;
// `x` and `y` have type int.

但为了使这项工作有效,<iterator> 中的某处实际上有一个显式定义。标题,内容如下:

template <typename T>
struct iterator_traits<T*> {
typedef T value_type;
// …
};

这是iterator_traits部分特化 type 用于 T* 形式的类型,即一些泛型类型的指针。

同样,iterator_traits专门用于其他迭代器,例如typename vector<T>::iterator .

关于c++ - 特征类是如何工作的,它们是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3979766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com