std::literals::string_literals::operator""s
De cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| Definido en el archivo de encabezado <string>
|
||
| (1) | ||
std::string operator""s(const char *str, std::size_t len); |
(desde C++14) (hasta C++20) |
|
constexpr std::string operator""s(const char *str, std::size_t len); |
(desde C++20) | |
constexpr std::u8string operator""s(const char8_t *str, std::size_t len); |
(2) | (desde C++20) |
| (3) | ||
std::u16string operator""s(const char16_t *str, std::size_t len); |
(desde C++14) (hasta C++20) |
|
constexpr std::u16string operator""s(const char16_t *str, std::size_t len); |
(desde C++20) | |
| (4) | ||
std::u32string operator""s(const char32_t *str, std::size_t len); |
(desde C++14) (hasta C++20) |
|
constexpr std::u32string operator""s(const char32_t *str, std::size_t len); |
(desde C++20) | |
| (5) | ||
std::wstring operator""s(const wchar_t *str, std::size_t len); |
(desde C++14) (hasta C++20) |
|
constexpr std::wstring operator""s(const wchar_t *str, std::size_t len); |
(desde C++20) | |
Forma un literal de cadena del tipo deseado.
1) Devuelve
std::string{str, len}2) Devuelve
std::u8string{str, len}3) Devuelve
std::u16string{str, len}4) Devuelve
std::u32string{str, len}5) Devuelve
std::wstring{str, len}Parámetros
| str | - | Puntero al inicio del literal de array de caracteres sin formato. |
| len | - | Longitud del literal de array de caracteres sin formato. |
Valor de retorno
El literal de cadena.
Notas
Estos operadores se declaran en el espacio de nombres std::literals::string_literals, donde tanto literals como string_literals son espacios de nombres en línea. Puede obtenerse acceso a estos operadores con using namespace std::literals, using namespace std::string_literals y using namespace std::literals::string_literals.
std::chrono::duration también define operator""s, para representar literales de segundos, pero es un literal aritmético: 10.0s y 10s son diez segundos, pero "10"s es una cadena.
Ejemplo
Ejecuta este código
#include <string>
#include <iostream>
int main()
{
using namespace std::string_literals;
std::string s1 = "abc\0\0def";
std::string s2 = "abc\0\0def"s;
std::cout << "s1: " << s1.size() << " \"" << s1 << "\"\n";
std::cout << "s2: " << s2.size() << " \"" << s2 << "\"\n";
}
Posible salida:
s1: 3 "abc"
s2: 8 "abc^@^@def"
Véase también
Construye una cadena basic_string (función miembro pública) |