Tür Özellikleri için Derleyici Desteği (C++ Bileşen Uzantıları)
Derleyici destekler türü nitelikler, doldurmak istediğiniz türde çeşitli özellikleri derleme zamanında.
Tüm çalışma zamanlarının
Notlar
Tür nitelikler kitaplıkları yazma programcılar için özellikle yararlıdır.
Derleyici tarafından desteklenen türü nitelikleri aşağıdaki tabloda listelenmektedir.Tüm nitelikler return yazın false türü ayırdedici Nitelik adı tarafından belirtilen koşul karşılanmazsa.
(Tablo Açıklama sütununda yalnızca kod örnekleri yazılı C++/CLI.Ancak karşılık gelen türü ayırdedici nitelik de desteklenir Visual C++ bileşen uzantıları aksi belirtilmedikçe.Ya da "platform türü" terimi başvuran Windows Çalışma Zamanı türleri veya ortak dil çalışma zamanı türleri.)
Tür ayırdedici nitelik |
Description |
---|---|
__has_assign(type) |
Platform veya yerel türü bir kopyasını atama işleci varsa true deðerini verir.
|
__has_copy(type) |
Platform veya yerel türü bir kopya kurucu varsa true deðerini verir.
|
__has_finalizer(type) |
(Desteklenen değil Visual C++ bileşen uzantıları.) clr türü bir sınıfları sonlandırıcıyı varsa true deðerini verir.Daha fazla bilgi için bkz. Yıkıcı ve Visual C++ Finalizers.
|
__has_nothrow_assign(type) |
Bir kopyayı atama işleci boş durum belirtimi varsa true deðerini verir.
|
__has_nothrow_constructor(type) |
Varsayılan kurucu boş durum belirtimi varsa true deðerini verir.
|
__has_nothrow_copy(type) |
Boş bir özel durum belirtimi kopya kurucu varsa true deðerini verir.
|
__has_trivial_assign(type) |
Önemsiz, derleyici tarafından oluşturulmuş atama işleci türündeyse true deðerini verir.
|
__has_trivial_constructor(type) |
Önemsiz, derleyici tarafından oluşturulan kurucu türündeyse true deðerini verir.
|
__has_trivial_copy(type) |
Önemsiz, derleyici tarafından oluşturulan kopyası yapıcı türündeyse true deðerini verir.
|
__has_trivial_destructor(type) |
Önemsiz, derleyici tarafından oluşturulmuş bir yıkıcı türündeyse true deðerini verir.
|
__has_user_destructor(type) |
Kullanıcı bildirilen yıkıcı platform veya yerel türü varsa true deðerini verir.
|
__has_virtual_destructor(type) |
Sanal yıkıcı türündeyse true deðerini verir. __has_virtual_destructorAyrıca platform türleri ve platform türü kullanıcı tanımlı yıkıcıya works sanal yıkıcı olur.
|
__is_abstract(type) |
Soyut bir tür türündeyse true deðerini verir.Yerel soyut türleri hakkında daha fazla bilgi için bkz: soyut (C++ Bileşen Uzantıları). __is_abstractAyrıca platform türleri için geçerlidir.Soyut en az bir üye ile bir başvuru türü olarak en az bir üye ile soyut bir tür arabirimdir.Soyut platform türleri hakkında daha fazla bilgi için bkz.Soyut sınıflar (C++)
|
__is_base_of(base,derived) |
Her iki tür aynıysa ilk tür ikinci türden bir temel sınıf ise true deðerini verir. __is_base_ofplatform türleri üzerinde de çalışır.Örneğin, onu ilk türü ise doğru döndürür bir arabirim sınıfı (C++ Bileşen Uzantıları) ve ikinci tür arabirimini uygular.
|
__is_class(type) |
Yerel sınıf ya da yapı türündeyse true deðerini verir.
|
__is_convertible_to(from, to) |
İlk tür, ikinci tür dönüştürülmesi, true deðerini verir.
|
__is_delegate(type) |
Döndürür true if type bir temsilcidir.Daha fazla bilgi için bkz. temsilci (C++ Bileşen Uzantıları).
|
__is_empty(type) |
Hiçbir örnek veri üyeleri türündeyse true deðerini verir.
|
__is_enum(type) |
Yerel bir enum türü ise true deðerini verir.
|
__is_interface_class(type) |
Platform arabirimi aktarılırsa doğru değerini döndürür.Daha fazla bilgi için bkz. arabirim sınıfı (C++ Bileşen Uzantıları).
|
__is_pod(type) |
Bir sınıf veya hiç yapıcı veya özel veya korumalı olmayan statik üyeleri, temel bir sınıf ve sanal bir işlev birleşim türü ise true deðerini verir.PODs üzerinde C++ standart, Bölüm 8.5.1/1, 9/4 ve 3.9/10 daha fazla bilgi için bkz. __is_podtemel türlerinde false döndürür.
|
__is_polymorphic(type) |
Yerel tür sanal işlevler varsa true deðerini verir.
|
__is_ref_array(type) |
Platform dizi aktarılırsa doğru değerini döndürür.Daha fazla bilgi için bkz. Dizeler (C++ Bileşen Uzantıları).
|
__is_ref_class(type) |
Başvuru sınıf aktarılırsa doğru değerini döndürür.Kullanıcı tanımlı bir baþvuru türleri hakkında daha fazla bilgi için bkz: Sınıflar ve Yapılar (C++ Bileşen Uzantıları).
|
__is_sealed(type) |
Platform veya yerel türü aktarılırsa döndürür true sealed olarak işaretlenmiş.Daha fazla bilgi için bkz. mühürlü (C++ Bileşen Uzantıları).
|
__is_simple_value_class(type) |
Atık olarak toplanmış öbek hiçbir başvuru içeren bir değer türü aktarılırsa doğru değerini döndürür.Kullanıcı tanımlı değer türleri hakkında daha fazla bilgi için bkz: Sınıflar ve Yapılar (C++ Bileşen Uzantıları).
|
__is_union(type) |
Bir UNION türündeyse true deðerini verir.
|
__is_value_class(type) |
Bir değer türü aktarılırsa doğru değerini döndürür.Kullanıcı tanımlı değer türleri hakkında daha fazla bilgi için bkz: Sınıflar ve Yapılar (C++ Bileşen Uzantıları).
|
Windows Çalışma Zamanı
Notlar
__has_finalizer(Türü) finalizers bu platform desteklemediğinden türü ayırdedici nitelik desteklenmez.
Gereksinimler
Derleyici seçeneği:/ZW
Ortak Dil Çalışma Zamanı
Notlar
(Bu özelliğin hiçbir platforma özgü açıklamalar vardır.)
Gereksinimler
Derleyici seçeneği:/clr
Örnekler
Örnek
Aşağıdaki kod örneği sınıf şablonu için derleyici tür ayırdedici nitelik göstermek için nasıl kullanılacağını gösteren bir /clr derleme.Daha fazla bilgi için bkz. Windows Çalışma Zamanı ve Yönetilen Şablonlar (C++ Bileşen Uzantıları).
// compiler_type_traits.cpp
// compile with: /clr
using namespace System;
template <class T>
ref struct is_class {
literal bool value = __is_ref_class(T);
};
ref class R {};
int main () {
if (is_class<R>::value)
Console::WriteLine("R is a ref class");
else
Console::WriteLine("R is not a ref class");
}
Çıktı