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