std::operator+(std::basic_string)

From cppreference.com
 
 
 
std::basic_string
Member functions
basic_string::basic_string
basic_string::operator=
basic_string::assign
basic_string::get_allocator
Element access
basic_string::at
basic_string::operator[]
basic_string::front (C++11)
basic_string::back (C++11)
basic_string::data
basic_string::c_str
Iterators
basic_string::begin
basic_string::cbegin

(C++11)
basic_string::end
basic_string::cend

(C++11)
basic_string::rbegin
basic_string::crbegin

(C++11)
basic_string::rend
basic_string::crend

(C++11)
Capacity
basic_string::empty
basic_string::size
basic_string::length
basic_string::max_size
basic_string::reserve
basic_string::capacity
basic_string::shrink_to_fit (C++11)
Operations
basic_string::clear
basic_string::insert
basic_string::erase
basic_string::push_back
basic_string::pop_back (C++11)
basic_string::append
basic_string::operator+=
basic_string::compare
basic_string::replace
basic_string::substr
basic_string::copy
basic_string::resize
basic_string::swap
Search
basic_string::find
basic_string::rfind
basic_string::find_first_of
basic_string::find_first_not_of
basic_string::find_last_of
basic_string::find_last_not_of
Constants
basic_string::npos
Non-member functions
operator+
operator==
operator!=
operator<
operator>
operator<=
operator>=
swap(std::basic_string)
operator<<
operator>>
getline
stoi
stol
stoll
(C++11)
(C++11)
(C++11)
stoul
stoull
(C++11)
(C++11)
stof
stod
stold
(C++11)
(C++11)
(C++11)
to_string (C++11)
to_wstring (C++11)
Helper classes
hash<std::string>
hash<std::wstring>
hash<std::u32string>
hash<std::u16string>
(C++11)
 
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( const basic_string<CharT,Traits,Alloc>& lhs,

                   const basic_string<CharT,Traits,Alloc>& rhs );
(1)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( const CharT* lhs,

                   const basic_string<CharT,Traits,Alloc>& rhs );
(2)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( CharT lhs,

                   const basic_string<CharT,Traits,Alloc>& rhs );
(3)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( const basic_string<CharT,Traits,Alloc>& lhs,

                   const CharT* rhs );
(4)
template<class CharT, class Traits, class Alloc>

    basic_string<CharT,Traits,Alloc>
        operator+( const basic_string<CharT,Traits,Alloc>& lhs,

                   CharT rhs );
(5)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( basic_string<CharT,Traits,Alloc>&& lhs,

                   const basic_string<CharT,Traits,Alloc>& rhs );
(6) (since C++11)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( const basic_string<CharT,Traits,Alloc>& lhs,

                   basic_string<CharT,Traits,Alloc>&& rhs );
(7) (since C++11)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( basic_string<CharT,Traits,Alloc>&& lhs,

                   basic_string<CharT,Traits,Alloc>&& rhs );
(8) (since C++11)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+(const CharT* lhs,

                  basic_string<CharT,Traits,Alloc>&& rhs );
(9) (since C++11)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( CharT lhs,

                   basic_string<CharT,Traits,Alloc>&& rhs );
(10) (since C++11)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( basic_string<CharT,Traits,Alloc>&& lhs,

                   const CharT* rhs );
(11) (since C++11)
template< class CharT, class Traits, class Alloc >

    basic_string<CharT,Traits,Alloc>
        operator+( basic_string<CharT,Traits,Alloc>&& lhs,

                   CharT rhs );
(12) (since C++11)

Returns a string containing characters from lhs followed by the characters from rhs.

Contents

[edit] Parameters

lhs - string, character, or pointer to the first character in a null-terminated array
rhs - string, character, or pointer to the first character in a null-terminated array

[edit] Return value

1) basic_string<CharT,Traits,Alloc>(lhs).append(rhs)

2) basic_string<CharT,Traits,Alloc>(lhs) + rhs

3) basic_string<CharT,Traits,Alloc>(1,lhs) + rhs

4) lhs + basic_string<CharT,Traits,Alloc>(rhs)

5) lhs + basic_string<CharT,Traits,Alloc>(1,rhs)

6) std::move(lhs.append(rhs))

7) std::move(rhs.insert(0, lhs))

8) std::move(lhs.append(rhs)) or std::move(rhs.insert(0, lhs))

9) std::move(rhs.insert(0, lhs))

10) std::move(rhs.insert(0, 1, lhs))

11) std::move(lhs.append(rhs))

12) std::move(lhs.append(1, rhs))

[edit] Example

#include <iostream>
#include <string>
 
int main()
{
    std::string s1 = "Hello";
    std::string s2 = "world";
    std::cout << s1 + ' ' + s2 + "!\n";
}

Output:

Hello world!

[edit] See also

appends characters to the end
(public member function)
appends characters to the end
(public member function)
inserts characters
(public member function)