std::is_standard_layout – cppreference.com
Aus cppreference.com
<metanoindex/>
<tbody> </tbody>
| definiert in Header <type_traits> |
||
|
|
(seit C++11) | |
Wenn T ein Standard-Tastaturbelegung (das heißt, eine skalare Typ, ein Standard-Layout-Klasse, oder ein Array solcher Art / Klasse, möglicherweise cv-qualifiziert) ist, stellt das Mitglied konstanten value gleich true. Für jede andere Art, value ist false .
Original:
If T is a standard layout type (that is, a scalar type, a standard-layout class, or an array of such type/class, possibly cv-qualified), 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.
Ein Standard-Layout-Klasse ist eine Klasse,
Original:
A standard-layout class is a class that
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Ein. hat keine nicht-statische Datenelemente, die nicht Standard-Layout
Original:
1. has no non-static data members that aren't standard-layout
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
2. hat keine virtuellen Funktionen und keine virtuellen Basisklassen
Original:
2. has no virtual functions and no virtual base classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
3. hat den gleichen Zugang zur Steuerung aller nicht-statische Datenelemente
Original:
3. has the same access control for all non-static data members
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
4. hat keine Basisklassen, die nicht Standard-Layout
Original:
4. has no base classes that aren't standard-layout
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
5. hat entweder keine Basisklasse mit nicht-statische Datenelemente oder hat keine nicht-statische Datenelemente in den meisten abgeleiteten Klasse und nur eine Basis mit ihnen
Original:
5. either has no base class with non-static data members or has no non-static data members in the most derived class and only one base with them
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
6. hat keine Basisklassen des gleichen Typs wie das erste nicht-statisches Datenelement
Original:
6. has no base classes of the same type as the first non-static data member
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
Ein Zeiger auf eine Standard-Layout-Klasse kann umgewandelt (mit reinterpret_cast) auf einen Zeiger auf sein erstes nicht-statische Daten Mitglied werden und umgekehrt .
Original:
A pointer to a standard-layout class may be converted (with reinterpret_cast) to a pointer to its first non-static data member and vice versa.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Wenn ein Standard-Layout union hält zwei oder mehr Standard-Layout-Strukturen, ist es erlaubt, den gemeinsamen ersten Teil von ihnen untersuchen .
Original:
If a standard-layout union holds two or more standard-layout structs, it is permitted to inspect the common initial part of them.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Das Makro offsetof kann nur mit Standard-Layout-Klassen verwendet werden .
Original:
The macro offsetof can only be used with standard-layout 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 { int m; }; struct B { int m1; private: int m2; }; struct C { virtual void foo(); }; int main() { std::cout << std::boolalpha; std::cout << std::is_standard_layout<A>::value << '\n'; std::cout << std::is_standard_layout<B>::value << '\n'; std::cout << std::is_standard_layout<C>::value << '\n'; }
Output:
Siehe auch
(C++11) |
checks if a type is trivially copyable (Klassen-Template) [edit] |
(C++11) |
prüft, ob ein Typ ist plain-old-Daten (POD)-Typ Original: checks if a type is plain-old data (POD) type The text has been machine-translated via Google Translate. (Klassen-Template) [edit] |
Abstand zwischen dem Beginn eines Standard-Layout-Typs und der benannten Member-Variable in Byte Original: byte offset from the beginning of a standard-layout type to specified member The text has been machine-translated via Google Translate. (funktionieren Makro) [edit] | |