User-defined literals (desde C++11)
Da 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. |
Esta seção está incompleta |
C + 11 introduziu a capacidade de adicionar sufixos personalizados para literais, a fim de fornecer valores diferentes.
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.
Sufixo literal pode ser sobrecarregado de uma forma muito semelhante aos operadores.
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.
[editar] Sintaxe
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 }
|
|||||||||
[editar] Explicação
return | - | Valor de retorno
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 | - | Declaração seqüência especificador, pode conter palavras-chave como constexpr ou 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 | - | Um válido C + + identificador, prefixado com um sublinhado. Identificadores sem sublinhado são reservados para 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 | - | Valor resultante de uma literal integral
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 | - | Valor resultante de um literal de ponto flutuante
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 | - | Valor resultante de um caractere literal
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 | - | Terminada em null string como analisado pelo compilador, para literais inteiros e de ponto flutuante
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 tamanho de uma string literal
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 | - | Corpo da função
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. |
[editar] Exemplos
// 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;
Saída:
0x123ABC