GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
* Sign Up! *

Support
Customer Portal
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::basic_string::operator+=(3) C++ Standard Libary std::basic_string::operator+=(3)

std::basic_string::operator+= - std::basic_string::operator+=


basic_string& operator+=( const basic_string& str ); (1) (constexpr since C++20)
basic_string& operator+=( CharT ch ); (2) (constexpr since C++20)
basic_string& operator+=( const CharT* s ); (3) (constexpr since C++20)
basic_string& operator+=( std::initializer_list<CharT> (4) (since C++11)
ilist ); (constexpr since C++20)
template< class StringViewLike > (5) (since C++17)
basic_string& operator+=( const StringViewLike& t ); (constexpr since C++20)


Appends additional characters to the string.


1) Appends string str.
2) Appends character ch.
3) Appends the null-terminated character string pointed to by s.
4) Appends characters in the initializer list ilist.
5) Implicitly converts t to a string view sv as if by std::basic_string_view<CharT,
Traits> sv = t;, then appends characters in the string view sv as if by append(sv).
This overload participates in overload resolution only if
std::is_convertible_v<const StringViewLike&,
std::basic_string_view<CharT, Traits>> is true and
std::is_convertible_v<const StringViewLike&, const CharT*> is false.


str - string to append
ch - character value to append
s - pointer to a null-terminated character string to append
ilist - std::initializer_list with the characters to append
t - object (convertible to std::basic_string_view) with the characters to append


*this


There are no standard complexity guarantees, typical implementations behave similar
to std::vector::insert().


If the operation would result in size() > max_size(), throws std::length_error.


If an exception is thrown for any reason, this function has no effect (strong
exception safety guarantee).


Overload (2) can accept any types that are implicitly convertible to CharT. For
std::string, where CharT is char, the set of acceptable types includes all
arithmetic types. This may have unintended effects.

// Run this code


#include <iomanip>
#include <iostream>
#include <string>


int main()
{
std::string str;


// reserve sufficient storage space to avoid memory reallocation
str.reserve(50);


std::cout << std::quoted(str) << '\n'; // empty string


str += "This";
std::cout << std::quoted(str) << '\n';


str += std::string(" is ");
std::cout << std::quoted(str) << '\n';


str += 'a';
std::cout << std::quoted(str) << '\n';


str += {' ', 's', 't', 'r', 'i', 'n', 'g', '.'};
std::cout << std::quoted(str) << '\n';


str += 69.96; // Equivalent to str += static_cast<char>(69.96);
// 'E' (ASCII code 69) is appended by overload (2),
// which might not be the intent.


// To add a numeric value, consider std::to_string():
str += std::to_string(1729);


std::cout << std::quoted(str) << '\n';
}


""
"This"
"This is "
"This is a"
"This is a string."
"This is a string.E1729"


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
LWG 847 C++98 there was no exception safety added strong exception safety
guarantee guarantee
LWG 2946 C++17 overload (5) caused ambiguity in avoided by making it a
some cases template


append appends characters to the end
(public member function)

2024.06.10 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.