Condividi tramite


has_trivial_constructor Class

Verificare se il tipo dispone di un costruttore predefinito semplice.

template<class Ty>
    struct has_trivial_constructor;

Parametri

  • Ty
    Il tipo da eseguire la query.

Note

Un'istanza del predicato del tipo per poter se il tipo Ty è una classe che dispone di un costruttore semplice, è contenuta in caso contrario false.

Un costruttore per una classe Ty è semplice se:

è un costruttore predefinito in modo implicito dichiarato

la classe Ty non dispone di funzioni virtuali

la classe Ty non ha basi virtuali

tutte le basi dirette della classe Ty avere costruttori irrilevanti

le classi di tutti i membri dati non statico di tipo classe dispongono di costruttori irrilevanti

le classi di tutti i membri dati non statico di matrice di tipi di classe dispongono di costruttori irrilevanti

Esempio

 

// std_tr1__type_traits__has_trivial_constructor.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_constructor<trivial> == " << std::boolalpha 
        << std::has_trivial_constructor<trivial>::value << std::endl; 
    std::cout << "has_trivial_constructor<throws> == " << std::boolalpha 
        << std::has_trivial_constructor<throws>::value << std::endl; 
 
    return (0); 
    } 
 
  

Requisiti

intestazione: <type_traits>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

<type_traits>

has_nothrow_constructor Class

has_trivial_destructor Class

Altre risorse

<type_traits> membri