Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
typenameidentifier;
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()
{
}