std::operator+(std::basic_string)
Definido en el archivo de encabezado <string>
|
||
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(1) | (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(2) | (constexpr since C++20) |
template<class CharT, class Traits, class Alloc> std::basic_string<CharT,Traits,Alloc> |
(3) | (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(4) | (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(5) | (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(6) | (desde C++11) (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(7) | (desde C++11) (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(8) | (desde C++11) (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(9) | (desde C++11) (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(10) | (desde C++11) (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(11) | (desde C++11) (constexpr since C++20) |
template< class CharT, class Traits, class Alloc > std::basic_string<CharT,Traits,Alloc> |
(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) std::allocator_traits<Alloc>::select_on_container_copy_construction(lhs.get_allocator())
4-5) std::allocator_traits<Alloc>::select_on_container_copy_construction(rhs.get_allocator())
6-9) lhs.get_allocator()
10-12) rhs.get_allocator()
En otras palabras, si un operando es un rvalue Para (6-12), todos los operandos rvalue |
(desde C++11) |
Contenido |
[editar] 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. |
[editar] 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) |
[editar] Ejemplo
#include <iostream> #include <string> int main() { std::string s1 = "Hola"; std::string s2 = "mundo"; std::cout << s1 + ' ' + s2 + "!\n"; }
Salida:
Hola mundo!
[editar] 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. |
[editar] Véase también
Añade caracteres al final (función miembro pública) | |
Añade caracteres al final (función miembro pública) | |
Inserta caracteres (función miembro pública) |