◐ Shell
clean mode source ↗

std::is_standard_layout – cppreference.com

Aus cppreference.com

<metanoindex/>

<tbody> </tbody>

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.

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

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

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>

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

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.
You can help to correct and verify the translation. Click here for instructions.


(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.
You can help to correct and verify the translation. Click here for instructions.


(funktionieren Makro) [edit]