Bagikan melalui


typename

Dalam definisi templat, typename berikan petunjuk kepada pengkompilasi bahwa pengidentifikasi yang tidak diketahui adalah jenis. Dalam daftar parameter templat, parameter tersebut digunakan untuk menentukan parameter jenis.

Sintaksis

typename identifier ;

Komentar

Kata typename kunci harus digunakan jika nama dalam definisi templat adalah nama yang memenuhi syarat yang bergantung pada argumen templat; itu opsional jika nama yang memenuhi syarat tidak bergantung. Untuk informasi selengkapnya, lihat Templat dan Resolusi Nama.

typename dapat digunakan oleh jenis apa pun di mana saja dalam deklarasi atau definisi templat. Ini tidak diperbolehkan dalam daftar kelas dasar, kecuali sebagai argumen templat ke kelas dasar templat.

template <class T>
class C1 : typename T::InnerType // Error - typename not allowed.
{};
template <class T>
class C2 : A<typename T::InnerType>  // typename OK.
{};

Kata typename kunci juga dapat digunakan sebagai pengganti class dalam daftar parameter templat. Misalnya, pernyataan berikut setara secara semantik:

template<class T1, class T2>...
template<typename T1, typename T2>...

Contoh

// typename.cpp
template<class T> class X
{
   typename T::Y m_y;   // treat Y as a type
};

int main()
{
}

Lihat juga

Template
Kata kunci