is_compound-Klasse
Testet, ob der angegebene Typ nicht grundlegend ist.
Syntax
template <class Ty>
struct is_compound;
Parameter
Ty
Der abzufragende Typ.
Hinweise
Eine Instanz des Typprädikats enthält false
, wenn der Typ von Ty ein grundlegender Typ ist (d. h. wenn is_fundamental<Ty> haltet true
); andernfalls enthält true
es . Daher enthält true
das Prädikat, wenn Ty ein Arraytyp, ein Funktionstyp, ein Zeiger oder void
ein Objekt oder eine Funktion, einen Verweis, eine Klasse, eine Vereinigung, eine Aufzählung oder einen Zeiger auf nicht statische Klassenmemmemm oder eine cv-qualifizierte Form eines davon ist.
Beispiel
// std__type_traits__is_compound.cpp
// compile with: /EHsc
#include <type_traits>
#include <iostream>
struct trivial
{
int val;
};
int main()
{
std::cout << "is_compound<trivial> == " << std::boolalpha
<< std::is_compound<trivial>::value << std::endl;
std::cout << "is_compound<int[]> == " << std::boolalpha
<< std::is_compound<int[]>::value << std::endl;
std::cout << "is_compound<int()> == " << std::boolalpha
<< std::is_compound<int()>::value << std::endl;
std::cout << "is_compound<int&> == " << std::boolalpha
<< std::is_compound<int&>::value << std::endl;
std::cout << "is_compound<void *> == " << std::boolalpha
<< std::is_compound<void *>::value << std::endl;
std::cout << "is_compound<int> == " << std::boolalpha
<< std::is_compound<int>::value << std::endl;
return (0);
}
is_compound<trivial> == true
is_compound<int[]> == true
is_compound<int()> == true
is_compound<int&> == true
is_compound<void *> == true
is_compound<int> == false
Anforderungen
Header:<type_traits>
Namespace: std