Prüfen ob typename T primitiv/mit Destructor



  • Gibt es eine Metaprogramming-Technik, mit der man prüfen kann, ob ein Templateparameter ein primitiver Typ (bzw. struct von primitiven typen) ist, oder ober er einen "nicht-leeren" Destruktor besitzt?

    Grund:
    Für einen speziellen Allocator<T> habe ist der FreeAll() deutlich komplexer, wenn der Destructor aufgerufen werden muß. Wäre einfach nett, wenn man das unterscheiden kann - dann könnte der Allokator gleichzeitig quasi als Pool arbeiten.


  • Mod

    Für diesen Zweck ist Boosts TypeTraits Bibliothek da, in deinem Falle wohl has_trivial_destructor. Leider ist es so, dass die meisten interessanten Eigenschaften von Typen nur ermmittelt werden können, wenn der Compiler dafür explizite Unterstützung gewährt.


Anmelden zum Antworten