Classe is_compound
Testa se o tipo especificado não é fundamental.
Sintaxe
template <class Ty>
struct is_compound;
Parâmetros
Ty
O tipo a ser consultado.
Comentários
Uma instância do predicado de tipo será false
se o tipo de Ty for um tipo fundamental (isto é, se is_fundamental<Ty> for true
); caso contrário, será true
. Portanto, o predicado será true
se Ty for um tipo de matriz, um tipo de função, um ponteiro para void
ou um objeto ou uma função, uma referência, uma classe, uma união, uma enumeração ou um ponteiro para um membro de classe não estática ou uma forma qualificada por CV de um deles.
Exemplo
// 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
Requisitos
Cabeçalho:<type_traits>
Namespace: std