User-defined literals (dal C++11)
Da cppreference.com.
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
This section is incomplete |
C + 11 ha introdotto la possibilità di aggiungere suffissi personalizzati per letterali, al fine di fornire valori diversi.
Original:
C++11 introduced the ability to add custom suffixes to literals in order to provide different values.
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.
Suffisso letterale può essere sovraccaricato in modo molto simile agli operatori.
Original:
Literal suffixed can be overloaded in a way very similar to operators.
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.
[modifica] Sintassi
return decl operator"" name ( unsigned long long n ) { body }
|
|||||||||
return decl operator"" name ( long double d ) { body }
|
|||||||||
return decl operator"" name ( char c ) { body }
|
|||||||||
return decl operator"" name ( const char* str, size_t sz ) { body }
|
|||||||||
return decl operator"" name ( const char* cstr ) { body }
|
|||||||||
[modifica] Spiegazione
return | - | Valore di ritorno
Original: Return value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
decl | - | Dichiarazione sequenza specificatore, può contenere le parole chiave come constexpr o inline
Original: Declaration specifier sequence, can contain keywords as constexpr or inline The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
name | - | Un valido C + + identificatore, preceduto da un carattere di sottolineatura. Identificatori senza sottolineatura sono riservati per uso futuro
Original: A valid C++ identifier, prefixed with an underscore. Identifiers without underscore are reserved for future use The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
n | - | Valore risultante da un letterale integrale
Original: Value resulting from an integral literal The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
d | - | Valore risultante da una virgola letterale
Original: Value resulting from a floating-point literal The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
c | - | Valore risultante da un carattere letterale
Original: Value resulting from a character literal The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
cstr | - | Stringa null-terminated, come analizzato dal compilatore, per i valori letterali interi e virgola mobile
Original: Null-terminated string as parsed by the compiler, for integer and floating point literals The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
str/sz | - | Buffer e le dimensioni da una stringa letterale
Original: Buffer and size from a string literal The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
body | - | Funzione del corpo
Original: Function body The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[modifica] Esempi
// used as conversion inline constexpr long double operator"" _deg ( long double deg ) { return deg*3.141592/180; } ... double x = 90.0_deg; // x = 1.570796
// used with custom type struct mytype { ... mytype ( unsigned long long ); }; mytype operator"" _mytype ( unsigned long long n ) { return mytype(n); } ... mytype x = 123_mytype;
// used for side-effects void operator"" _print ( const char* str ) { std::cout << str; } ... 0x123ABC_print;
Output:
0x123ABC