std::underlying_type – cppreference.com
Aus cppreference.com
<metanoindex/>
<tbody> </tbody>
| definiert in Header <type_traits> |
||
|
|
(seit C++11) | |
Legt ein Mitglied typedef type der Typ, der zugrunde liegende Typ für die Zählung T ist .
Original:
Defines a member typedef type of type that is the underlying type for the enumeration T.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Mitglied Typen
Name Original: Name The text has been machine-translated via Google Translate. |
Definition |
type
|
der zugrunde liegende Typ für Original: the underlying type for The text has been machine-translated via Google Translate. |
Notes
Jeder Aufzählungstyp hat einen zugrunde liegenden Typ, der sein kann
Original:
Each enumeration type has an underlying type, which can be
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Ein. Explizit (beide scoped und ohne Bereichseinschränkung Aufzählungen) angegeben
Original:
1. Specified explicitly (both scoped and unscoped enumerations)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
2. Weggelassen wird, in welchem Fall es int ist für scoped Aufzählungen oder eine Implementierung definiert integraler Typ, der stellvertretend für alle Werte der Enum (für ohne Bereichseinschränkung Aufzählungen)
Original:
2. Omitted, in which case it is int for scoped enumerations or an implementation-defined integral type capable of representing all values of the enum (for unscoped enumerations)
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> enum e1 {}; enum class e2: int {}; int main() { bool e1_type = std::is_same< unsigned ,typename std::underlying_type<e1>::type >::value; bool e2_type = std::is_same< int ,typename std::underlying_type<e2>::type >::value; std::cout << "underlying type for 'e1' is " << (e1_type?"unsigned":"non-unsigned") << '\n' << "underlying type for 'e2' is " << (e2_type?"int":"non-int") << '\n'; }
Output:
underlying type for 'e1' is unsigned underlying type for 'e2' is int