std::is_standard_layout
Aus cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
definiert in Header <type_traits> | ||
template<class T > struct is_standard_layout; | (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.
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.
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.
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.
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.
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.
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.
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.
You can help to correct and verify the translation. Click here for instructions.
Inhaltsverzeichnis |
Inherited from std::integral_constant
Member constants
value [statisch] | true wenn T is a standard-layout type , false anders Original: true if T is a standard-layout type , false otherwise The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public static Mitglied konstanten) |
Member functions
operator bool | wandelt das Objekt bool, gibt value Original: converts the object to bool, returns value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) |
Member types
Type Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | Definition |
value_type | bool |
type | std::integral_constant<bool, value> |
[Bearbeiten]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.
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.
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.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten]Beispiel
#include <iostream>#include <type_traits> struct A {int m;}; struct B {int m1;private:int m2;}; struct C {virtualvoid 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:
true false false
[Bearbeiten]Siehe auch
(C++11) | checks if a type is trivially copyable (Klassen-Template) |
(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. You can help to correct and verify the translation. Click here for instructions. (Klassen-Template) |
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. You can help to correct and verify the translation. Click here for instructions. (funktionieren Makro) |