• // <string>
    // 字符串(1)
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const basic_string<charT,traits,Alloc>& lhs,
                                const basic_string<charT,traits,Alloc>& rhs);
    // C 型字符串(2)
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const basic_string<charT,traits,Alloc>& lhs, 
                                const charT* rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const charT* lhs,
                                const basic_string<charT,traits,Alloc>& rhs);
    // 字符(3)	
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const basic_string<charT,traits,Alloc>& lhs,
                                charT rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (charT lhs,
                                const basic_string<charT,traits,Alloc>& rhs);
  • // <string>
    // 字符串(1)
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const basic_string<charT,traits,Alloc>& lhs,
                              const basic_string<charT,traits,Alloc>& rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (basic_string<charT,traits,Alloc>&& lhs,
                              basic_string<charT,traits,Alloc>&& rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (basic_string<charT,traits,Alloc>&& lhs,
                              const basic_string<charT,traits,Alloc>& rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const basic_string<charT,traits,Alloc>& lhs,
                              basic_string<charT,traits,Alloc>&& rhs);
    // C 型字符串(2)
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const basic_string<charT,traits,Alloc>& lhs,
                                const charT* rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (basic_string<charT,traits,Alloc>&& lhs,
                                const charT* rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const charT* lhs,
                                const basic_string<charT,traits,Alloc>&  rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const charT* lhs,
                                basic_string<charT,traits,Alloc>&& rhs);
    // 字符(3)
    template <class charT, class traits, class Alloc>
        basic_string operator+ (const basic_string<charT,traits,Alloc>& lhs,
                                charT rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (basic_string<charT,traits,Alloc>&& lhs,
                                charT rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (charT lhs,
    ​                            const basic_string<charT,traits,Alloc>& rhs);
    template <class charT, class traits, class Alloc>
        basic_string operator+ (charT lhs, basic_string<charT,traits,Alloc>&& rhs);

basic_string 类模板的公共成员函数。连接两个字符串或一个字符串和一个字符。