Freigeben über


has_trivial_constructor Class

Prüft, ob Typ trivialen Standardkonstruktor verfügt.

template<class Ty>
    struct has_trivial_constructor;

Parameter

  • Ty
    Der abzufragende Typ.

Hinweise

Eine Instanz des Typs prädikats behält True an, wenn der Typ Ty eine Klasse handelt, die einen trivialen Standardkonstruktor verfügt, andernfalls wird er false.

Ein Konstruktor für eine Klasse Ty trivial ist, wenn:

Es ist ein deklarierter Standardkonstruktor implizit

Ty die Klasse keine virtuellen Funktionen

Ty die Klasse keine virtuellen Basen

Basistyp der alle direkten Konstruktoren triviale haben Ty-Klasse

Alle Klassen nicht statischen Datenmembern des Klassentyps sind einfache Konstruktoren

Alle Klassen nicht statischen Datenmembern vom Typ von Arrays Klasse verfügen über einfache Konstruktoren

Beispiel

 

// 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); 
    } 
 
  

Anforderungen

Header: <type_traits>

Namespace: std

Siehe auch

Referenz

<type_traits>

has_nothrow_constructor Class

has_trivial_destructor Class

Weitere Ressourcen

<type_traits> Member