c++ stl traits const T* spécialisation partielle.
PHPz
PHPz 2017-05-16 13:30:50
0
1
1042

Comme suit :

template <class I>
struct iterator_traits
{
    typedef typename I::value_type   value_type;
}
//针对指向常数对象的指针的特例化
template <class T>
struct iterator_traits<const T*>
{
    typedef T  value_type;
}

Ici, je pense obtenir le value_type lié à l'itérateur. Pourquoi convertir const int en int ? Ce que nous voulons obtenir, ce sont des informations de type. Bien que la variable obtenue (variable de ce type) ne puisse pas être modifiée, pourquoi est-elle dite inutile (dit dans le livre d'analyse du code source stl)

J'espère que vous pourrez m'aider à expliquer ce qui précède. Merci.

PHPz
PHPz

学习是最好的投资!

répondre à tous(1)
漂亮男人
  1. Ça y est, le but des traits (extraction) est d'obtenir statiquement certaines caractéristiques inhérentes à l'objet au moment de la compilation

  2. Je ne comprends pas très bien ce que vous voulez exprimer. Vous avez dit « Pourquoi convertir const int en int » En fait, const est défini par ce qui suit

  3. ?
template <class T>
struct iterator_traits<const T*>
{
    typedef const T  const_value_type;
    //你可以定义更多的,traits出更多的类型
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal