is_compound, classe
Teste si le type spécifié n'est pas fondamental.
Syntaxe
template <class Ty>
struct is_compound;
Paramètres
Ty
Type à interroger.
Notes
Une instance du prédicat de type contient false
si le type de Ty est un type fondamental (autrement dit, si is_fundamental<Ty> contient true
) ; sinon, il contient true
. Par conséquent, le prédicat contient true
si Ty est un type de tableau, un type de fonction, un pointeur vers void
ou un objet ou une fonction, une référence, une classe, une union, une énumération ou un pointeur vers un membre de classe non statique, ou une forme qualifiée cv de l’un d’eux.
Exemple
// 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
Spécifications
Header :<type_traits>
Espace de noms : std