Compartilhar via


Classe has_trivial_assign

Testa se o tipo tem trivial atribuir.

template<class Ty>
    struct has_trivial_assign;

Parâmetros

  • Ty
    O tipo para consulte.

Comentários

Uma instância do predicado do tipo se aplica se o tipo Ty é uma classe que tem um operador de atribuição trivial de cópia, se não mantém false.

Um operador de atribuição de cópia para uma classe Ty é trivial se:

é declarado implicitamente

a classe Ty não tem nenhuma função virtual

a classe Ty não tem nenhuma base virtual

todas as bases diretas da classe Ty têm operadores de atribuição triviais de cópia

as classes de todos os membros de dados que não sejam do tipo estático da classe têm operadores de atribuição triviais de cópia

as classes de todos os membros de dados que não sejam estáticos de matriz do tipo de classe têm operadores de atribuição triviais de cópia

Exemplo

 

// std_tr1__type_traits__has_trivial_assign.cpp 
// compile with: /EHsc 
#include <type_traits> 
#include <iostream> 
 
struct trivial 
    { 
    int val; 
    }; 
 
struct throws 
    { 
    throws() throw(int) 
        { 
        } 
 
    throws(const throws&) throw(int) 
        { 
        } 
 
    throws& operator=(const throws&) throw(int) 
        { 
        } 
 
    int val; 
    }; 
 
int main() 
    { 
    std::cout << "has_trivial_assign<trivial> == " << std::boolalpha 
        << std::has_trivial_assign<trivial>::value << std::endl; 
    std::cout << "has_trivial_assign<throws> == " << std::boolalpha 
        << std::has_trivial_assign<throws>::value << std::endl; 
 
    return (0); 
    } 
 
  

Requisitos

Cabeçalho: <type_traits>

Namespace: std

Consulte também

Referência

<type_traits>

Classe has_nothrow_assign

Outros recursos

<type_traits> Membros