FreeBSD Manual Pages
std::basic_string::append(3) C++ Standard Libary std::basic_string::append(3) NAME std::basic_string::append - std::basic_string::append Synopsis basic_string& append( (until size_type count, CharT ch ); C++20) constexpr basic_string& (since append( size_type count, C++20) CharT ch ); basic_string& append( const (until basic_string& str ); C++20) constexpr basic_string& (since append( const basic_string& C++20) str ); basic_string& append( const basic_string& str, (until size_type pos, size_type C++14) count ); basic_string& append( const (since basic_string& str, C++14) size_type pos, size_type (until count = npos ); C++20) constexpr ba- sic_string& append( const basic_string& (since str, C++20) size_type pos, size_type count = npos ); basic_string& append( const (until CharT* s, size_type count ); C++20) constexpr basic_string& (since ap- pend( const CharT* s, C++20) size_type count ); basic_string& append( const (until CharT* s ); C++20) constexpr basic_string& (since append( const CharT* s ); C++20) template< class InputIt > basic_string& append( (until InputIt first, InputIt last C++20) ); template< class InputIt > (1) constexpr basic_string& (since append( InputIt first, C++20) InputIt last ); (2) basic_string& append( (since std::initializer_list<CharT> (3) C++11) ilist ); (until C++20) constexpr basic_string& append( (since std::initializer_list<CharT> C++20) ilist ); template < class (4) (since StringViewLike > C++17) basic_string& append( const (5) (until StringViewLike& t ); C++20) template < class (6) StringViewLike > (since constexpr basic_string& C++20) append( const StringViewLike& t ); (7) template < class StringViewLike > (since basic_string& append( const (8) C++17) StringViewLike& t, (until C++20) size_type pos, size_type count = npos ); template < class (9) StringViewLike > constexpr basic_string& (since append( const C++20) StringViewLike& t, size_type pos, size_type count = npos ); Appends additional characters to the string. 1) Appends count copies of character ch 2) Appends string str 3) Appends a substring [pos, pos+count) of str. If the requested substring lasts past the end of the string, or if count == npos, the appended sub- string is [pos, size()). If pos > str.size(), std::out_of_range is thrown. 4) Appends characters in the range [s, s + count). This range can contain null characters. 5) Appends the null-terminated character string pointed to by s. The length of the string is determined by the first null character using Traits::length(s). 6) Appends characters in the range [first, last). This overload has the same effect as overload (1) if InputIt is an (until C++11) integral type. This overload only participates in overload resolution if InputIt (since C++11) qualifies as an LegacyInputIterator 7) Appends characters from the initializer list ilist. 8) Implicitly converts t to a string view sv as if by std::ba- sic_string_view<CharT, Traits> sv = t;, then appends all characters from sv as if by ap- pend(sv.data(), sv.size()). This overload participates in overload resolution only if std::is_convertible_v<const StringViewLike&, std::ba- sic_string_view<CharT, Traits>> is true and std::is_convertible_v<const StringViewLike&, const CharT*> is false. 9) Implicitly converts t to a string view sv as if by std::ba- sic_string_view<CharT, Traits> sv = t;, then appends the characters from the subview [pos, pos+count) of sv. If the requested subview extends past the end of sv, or if count == npos, the appended subview is [pos, sv.size()). If pos >= sv.size(), std::out_of_range is thrown. This overload participates in overload resolution only if std::is_convertible_v<const StringViewLike&, std::ba- sic_string_view<CharT, Traits>> is true and std::is_convertible_v<const StringViewLike&, const CharT*> is false. Parameters count - number of characters to append pos - the index of the first character to append ch - character value to append first, last - range of characters to append str - string to append s - pointer to the character string to append ilist - initializer list with the characters to append t - object convertible to std::basic_string_view with the characters to append Return value *this Complexity There are no standard complexity guarantees, typical implementations behave similar to std::vector::insert. Exceptions If an exception is thrown for any reason, this function has no ef- fect (strong exception guarantee). (since C++11) If the operation would result in size() > max_size(), throws std::length_error. Defect reports The following behavior-changing defect reports were applied retroac- tively to previously published C++ standards. DR Applied to Behavior as published Correct behavior LWG 2946 C++17 string_view overload causes ambiguity in avoided by making it a some cases tem- plate Example // Run this code #include <string> #include <iostream> int main() { std::basic_string<char> str = "string"; const char* cptr = "C-string"; const char carr[] = "Two and one"; std::string output; // 1) Append a char 3 times. // Notice, this is the only overload accepting chars. output.append(3, '*'); std::cout << "1) " << output << "\n"; // 2) Append a whole string output.append(str); std::cout << "2) " << output << "\n"; // 3) Append part of a string (last 3 letters, in this case) output.append(str, 3, 3); std::cout << "3) " << output << "\n"; // 4) Append part of a C-string // Notice, because `append` returns *this, we can chain calls to- gether output.append(1, ' ').append(carr, 4); std::cout << "4) " << output << "\n"; // 5) Append a whole C-string output.append(cptr); std::cout << "5) " << output << "\n"; // 6) Append range output.append(&carr[3], std::end(carr)); std::cout << "6) " << output << "\n"; // 7) Append initializer list output.append({ ' ', 'l', 'i', 's', 't' }); std::cout << "7) " << output << "\n"; } Output: 1) *** 2) ***string 3) ***stringing 4) ***stringing Two 5) ***stringing Two C-string 6) ***stringing Two C-string and one 7) ***stringing Two C-string and one list See also operator+= appends characters to the end (public member function) strcat concatenates two strings (function) strncat concatenates a certain amount of characters of two strings (function) wcscat appends a copy of one wide string to another (function) appends a certain amount of wide characters from one wide string to wcsncat another (function) http://cppreference.com 2022.07.31 std::basic_string::append(3)
NAME | Synopsis | Parameters | Return value | Complexity | Exceptions | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::basic_string::append&sektion=3&manpath=FreeBSD+Ports+15.0>
