std::text_encoding:: literal
|
static
consteval text_encoding literal
(
)
noexcept
;
|
(desde C++26) | |
Construye un nuevo objeto
text_encoding
que representa la
codificación de literales de caracteres ordinarios
. Se utiliza para determinar la codificación de caracteres aplicada a literales de caracteres o cadenas ordinarias (por ejemplo,
"This is literal"
).
Esta función se elimina a menos que CHAR_BIT sea 8 .
Contenidos |
Parámetros
(ninguno)
Valor de retorno
El objeto que contiene la representación de la codificación literal ordinaria.
Notas
Esta función puede implementarse construyendo
text_encoding
con macros intrínsecas específicas del compilador como
__clang_literal_encoding__
de Clang, o
__GNUC_EXECUTION_CHARSET_NAME
de GCC. Estas macros, que se conocen en tiempo de compilación, se expanden a un literal de cadena estrecha que contiene el nombre del conjunto de caracteres de ejecución estrecho utilizado (codificación literal ordinaria).
El valor devuelto por
literal
(
)
puede depender de las opciones del compilador como
-fexec-charset=
encoding-name
en GCC o Clang o
/execution-charset:
encoding-name
en MSVC.
Ejemplo
Este ejemplo demuestra la aserción de que la codificación literal ordinaria debería ser UTF-8.
#include <text_encoding> static_assert(std::text_encoding::literal() == std::text_encoding::UTF8); int main() { // if the literal encoding is UTF-8, then this unprefixed string literal is // encoded as UTF-8 constexpr char green_heart[] = "\N{GREEN HEART}"; // this prefixed string literal is always encoded as UTF-8 regardless of the // literal encoding constexpr char8_t green_heart_u8[] = u8"\N{GREEN HEART}"; }