typename

Şablon tanımlarında, typename derleyiciye bilinmeyen bir tanımlayıcının bir tür olduğuna dair bir ipucu sağlar. Şablon parametre listelerinde bir tür parametresi belirtmek için kullanılır.

Sözdizimi

typename identifier ;

Açıklamalar

Şablon typename tanımındaki bir ad, şablon bağımsız değişkenine bağımlı olan bir nitelenmiş adsa anahtar sözcüğü kullanılmalıdır; nitelenmiş ad bağımlı değilse isteğe bağlıdır. Daha fazla bilgi için bkz. Şablonlar ve Ad Çözümleme.

typename bir şablon bildiriminde veya tanımında herhangi bir yerde herhangi bir tür tarafından kullanılabilir. Bir şablon temel sınıfı için şablon bağımsız değişkeni olmadığı sürece temel sınıf listesinde buna izin verilmez.

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

Anahtar typename sözcüğü, şablon parametre listelerinin class yerine de kullanılabilir. Örneğin, aşağıdaki deyimler sembolik olarak eşdeğerdir:

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

Örnek

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

int main()
{
}

Ayrıca bakınız

Şablonlar
Anahtar Sözcükler