template <class Ptr> class pointer_traits; // templatetemplate <class T> class pointer_traits<T*>; // template specialization
| 成员类型 | 解释 | 未特化中的定义pointer_traits | 在...中的定义pointer_traits<T*>特化 |
|---|---|---|---|
| 指针 | 指针类型 | 模板参数Ptr | T* |
| element_type | 所指值的类型 | 要么Ptr::element_type(如果存在该类型),或者用于实例化该模板的类的第一个模板参数(如果Ptr(如果Ptr是类模板的实例化)。 | T |
| difference_type | 通过减去两个类型为Ptr. | Ptr::difference_type(如果存在该类型),或者std::ptrdiff_t否则为 false。 | std::ptrdiff_t |
| rebind<V> | 重新绑定到V | 要么Ptr::rebind<V>(如果存在该类型),或者用于实例化该模板的类的实例化,使用Ptr作为第一个模板参数(如果VV*Ptr是类模板的实例化)。 | 是别名模板。 |
|
|
foo: 1 bar: 2 |