has_trivial_assign (Clase)

Comprueba si el tipo tiene una asignación trivial.

template<class Ty>
    struct has_trivial_assign;

Parámetros

  • Ty
    El tipo a ver.

Comentarios

Una instancia de predicado de tipo es true si el tipo Ty es una clase que tiene un operador de asignación trivial de copia, si no se considera false.

Un operador de asignación de copia para una clase Ty es trivial si:

se declara implícitamente

la clase Ty no tiene ninguna función virtual

la clase Ty no tiene ninguna base virtual

todas las bases directas de la clase Ty tienen operadores de asignación triviales de copia

las clases de todos los miembros de datos no estáticos de tipo de clase tienen operadores de asignación triviales de copia

las clases de todos los miembros de datos no estáticos de matriz de clase tienen operadores de asignación triviales de copia

Ejemplo

 

// 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

Encabezado: <type_traits>

Espacio de nombres: std

Vea también

Referencia

<type_traits>

has_nothrow_assign (Clase)

Otros recursos

miembros de <type_traits>