std::is_empty – cppreference.com
Aus cppreference.com
<metanoindex/>
<tbody> </tbody>
| definiert in Header <type_traits> |
||
|
|
(seit C++11) | |
Wenn T en leere Typ (das heißt, ein nicht gewerkschaftlich Klasse Typ ohne nicht-statische anderen Mitgliedern als Bit-Felder der Größe 0, keine virtuellen Funktionen, keine virtuellen Basisklassen, und keine nicht-leeren Basisklassen) ist, bietet das Mitglied konstanten value gleich true. Für jede andere Art, value ist false .
Original:
If T is en empty type (that is, a non-union class type with no non-static members other than bit-fields of size 0, no virtual functions, no virtual base classes, and no non-empty base classes), provides the member constant value equal true. For any other type, value is false.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Inherited from std::integral_constant
Member constants
Original:
The text has been machine-translated via Google Translate. (public static Mitglied konstanten) | |
Member functions
wandelt das Objekt Original: converts the object to The text has been machine-translated via Google Translate. (öffentliche Elementfunktion) | |
Member types
Type Original: Type The text has been machine-translated via Google Translate. |
Definition |
value_type
|
bool
|
type
|
std::integral_constant<bool, value>
|
Notes
sizeof(T) immer 1 zurück, wenn T leer ist, sondern erbt von leeren Basisklassen in der Regel nicht die Größe einer Klasse wegen leerer Sockel Optimierung .
Original:
sizeof(T) always returns 1 if T is empty, but inheriting from empty base classes usually does not increase the size of a class due to empty base optimization.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
std::is_empty<T> und alle anderen Exterieur sind leer Klassen .
Original:
std::is_empty<T> and all other type traits are empty classes.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Beispiel
#include <iostream> #include <type_traits> struct A {}; struct B { int m; }; struct C { virtual ~C(); }; int main() { std::cout << std::boolalpha; std::cout << std::is_empty<A>::value << '\n'; std::cout << std::is_empty<B>::value << '\n'; std::cout << std::is_empty<C>::value << '\n'; }
Output:
Siehe auch
| checks if a type is a class type (but not union type) (Klassen-Template) [edit] | |