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) |