std::operator+(std::basic_string) - cppreference.com
| Definido en el archivo de encabezado |
||
|
|
(1) | (constexpr since C++20) |
|
|
(2) | (constexpr since C++20) |
|
|
(3) | (constexpr since C++20) |
|
|
(4) | (constexpr since C++20) |
|
|
(5) | (constexpr since C++20) |
|
|
(6) | (desde C++11) (constexpr since C++20) |
|
|
(7) | (desde C++11) (constexpr since C++20) |
|
|
(8) | (desde C++11) (constexpr since C++20) |
|
|
(9) | (desde C++11) (constexpr since C++20) |
|
|
(10) | (desde C++11) (constexpr since C++20) |
|
|
(11) | (desde C++11) (constexpr since C++20) |
|
|
(12) | (desde C++11) (constexpr since C++20) |
Devuelve una cadena que contiene caracteres de lhs seguido de caracteres de rhs.
|
El asignador de memoria usado para el resutlado es: 1-3) 4-5) 6-9) 10-12) En otras palabras, si un operando es un rvalue Para (6-12), todos los operandos rvalue |
(desde C++11) |
Parámetros
| lhs | - | Cadena, carácter o puntero al primer carácter en una array terminado en nulo. |
| rhs | - | Cadena, carácter o puntero al primer carácter en una array terminado en nulo. |
Valor de retorno
Una cadena que contiene los caracteres de lhs seguido de los caracteres de rhs, usando el asignador de memoria determinado anteriormente (desde C++11).
NotasDeberá usarse el operador Ya que el asignador usado por el resultado de using mi_cadena = std::basic_string<char, std::char_traits<char>, mi_asignador<char>>; mi_cadena gato(); const mi_cadena& perro(); mi_cadena miau = /* ... */, guau = /* ... */; miau + gato() + /*...*/; // usa SOCCC en el asignador de miau guau + perro() + /*...*/; // en su lugar, usa el asignador del valor de retorno de perro() miau + guau + miau; // usa SOCCC en el asignador de miau miau + (guau + miau); // en su lugar usa SOCCC en el asignador de guau Para una cadena de invocaciones de // usar mi_asignador_favorito para el resultado final mi_cadena(mi_asignador_favorito) + miau + guau + gato() + perro(); Para un mejor y portable control sobre asignadores, las funciones miembro como |
(desde C++11) |
Ejemplo
#include <iostream> #include <string> int main() { std::string s1 = "Hola"; std::string s2 = "mundo"; std::cout << s1 + ' ' + s2 + "!\n"; }
Salida:
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| P1165R1 | C++11 | La propagación del asignador es aleatoria e inconsistente. | Se hizo más consistente. |