Rumah  >  Soal Jawab  >  teks badan

c++ stl traits const T* pengkhususan separa.

Seperti berikut:

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;
}

Di sini saya berfikir untuk mendapatkan value_type yang berkaitan dengan iterator Mengapa menukar const int kepada int? Apa yang kita nak dapat ialah maklumat taip Walaupun yang diperolehi (pembolehubah jenis ini) tidak boleh diubah suai, kenapa ia dikatakan tidak berguna (kata dalam buku analisis kod sumber stl)

Saya harap anda boleh membantu saya menerangkan perkara di atas. Terima kasih.

PHPzPHPz2688 hari yang lalu982

membalas semua(1)saya akan balas

  • 漂亮男人

    漂亮男人2017-05-16 13:32:50

    1. Itu sahaja, tujuan ciri (pengekstrakan) adalah untuk mendapatkan secara statik beberapa ciri yang melekat pada objek pada masa penyusunan

    2. Saya tidak begitu faham apa yang anda ingin nyatakan Anda berkata "Mengapa menukar const int kepada int"?

      template <class T>
      struct iterator_traits<const T*>
      {
          typedef const T  const_value_type;
          //你可以定义更多的,traits出更多的类型
      }

      balas
      0
  • Batalbalas