W3cubDocs

/C++

std::operator+(std::basic_string)

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.

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

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

Example

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

Output:

Hello world!

See also

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/string/basic_string/operator+