Partager via


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

Voir aussi

<type_traits>
is_class, classe