|
3143 | 3143 | basic_string<charT, traits, Allocator>
|
3144 | 3144 | operator+(const basic_string<charT, traits, Allocator>& lhs,
|
3145 | 3145 | const basic_string<charT, traits, Allocator>& rhs);
|
| 3146 | +template<class charT, class traits, class Allocator> |
| 3147 | + basic_string<charT, traits, Allocator> |
| 3148 | + operator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs); |
3146 | 3149 | \end{itemdecl}
|
3147 | 3150 |
|
3148 | 3151 | \begin{itemdescr}
|
3149 | 3152 | \pnum
|
3150 |
| -\returns |
3151 |
| -\tcode{std::move(basic_string<charT, traits, Allocator>(lhs).append(rhs))}. |
| 3153 | +\effects |
| 3154 | +Equivalent to: |
| 3155 | +\begin{codeblock} |
| 3156 | +basic_string<charT, traits, Allocator> r = lhs; |
| 3157 | +r.append(rhs); |
| 3158 | +return r; |
| 3159 | +\end{codeblock} |
3152 | 3160 | \end{itemdescr}
|
3153 | 3161 |
|
3154 | 3162 | \indexlibrarymember{operator+}{basic_string}%
|
|
3157 | 3165 | basic_string<charT, traits, Allocator>
|
3158 | 3166 | operator+(basic_string<charT, traits, Allocator>&& lhs,
|
3159 | 3167 | const basic_string<charT, traits, Allocator>& rhs);
|
3160 |
| -\end{itemdecl} |
3161 |
| - |
3162 |
| -\begin{itemdescr} |
3163 |
| -\pnum |
3164 |
| -\returns |
3165 |
| -\tcode{std::move(lhs.append(rhs))}. |
3166 |
| -\end{itemdescr} |
3167 |
| - |
3168 |
| -\indexlibrarymember{operator+}{basic_string}% |
3169 |
| -\begin{itemdecl} |
3170 | 3168 | template<class charT, class traits, class Allocator>
|
3171 | 3169 | basic_string<charT, traits, Allocator>
|
3172 |
| - operator+(const basic_string<charT, traits, Allocator>& lhs, |
3173 |
| - basic_string<charT, traits, Allocator>&& rhs); |
| 3170 | + operator+(basic_string<charT, traits, Allocator>&& lhs, const charT* rhs); |
3174 | 3171 | \end{itemdecl}
|
3175 | 3172 |
|
3176 | 3173 | \begin{itemdescr}
|
3177 | 3174 | \pnum
|
3178 |
| -\returns |
3179 |
| -\tcode{std::move(rhs.insert(0, lhs))}. |
| 3175 | +\effects |
| 3176 | +Equivalent to: |
| 3177 | +\begin{codeblock} |
| 3178 | +lhs.append(rhs); |
| 3179 | +return std::move(lhs); |
| 3180 | +\end{codeblock} |
3180 | 3181 | \end{itemdescr}
|
3181 | 3182 |
|
3182 | 3183 | \indexlibrarymember{operator+}{basic_string}%
|
|
3189 | 3190 |
|
3190 | 3191 | \begin{itemdescr}
|
3191 | 3192 | \pnum
|
3192 |
| -\returns |
3193 |
| -\tcode{std::move(lhs.append(rhs))}. |
| 3193 | +\effects |
| 3194 | +Equivalent to: |
| 3195 | +\begin{codeblock} |
| 3196 | +lhs.append(rhs); |
| 3197 | +return std::move(lhs); |
| 3198 | +\end{codeblock} |
| 3199 | +except that both \tcode{lhs} and \tcode{rhs} |
| 3200 | +are left in valid but unspecified states. |
| 3201 | +\begin{note} |
| 3202 | +If \tcode{lhs} and \tcode{rhs} have equal allocators, |
| 3203 | +the implementation may move from either. |
| 3204 | +\end{note} |
3194 | 3205 | \end{itemdescr}
|
3195 | 3206 |
|
3196 | 3207 | \indexlibrarymember{operator+}{basic_string}%
|
3197 | 3208 | \begin{itemdecl}
|
3198 | 3209 | template<class charT, class traits, class Allocator>
|
3199 | 3210 | basic_string<charT, traits, Allocator>
|
3200 |
| - operator+(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs); |
3201 |
| -\end{itemdecl} |
3202 |
| - |
3203 |
| -\begin{itemdescr} |
3204 |
| -\pnum |
3205 |
| -\returns |
3206 |
| -\tcode{basic_string<charT, traits, Allocator>(lhs) + rhs}. |
3207 |
| - |
3208 |
| -\pnum |
3209 |
| -\remarks |
3210 |
| -Uses |
3211 |
| -\tcode{traits::length()}. |
3212 |
| -\end{itemdescr} |
3213 |
| - |
3214 |
| -\indexlibrarymember{operator+}{basic_string}% |
3215 |
| -\begin{itemdecl} |
| 3211 | + operator+(const basic_string<charT, traits, Allocator>& lhs, |
| 3212 | + basic_string<charT, traits, Allocator>&& rhs); |
3216 | 3213 | template<class charT, class traits, class Allocator>
|
3217 | 3214 | basic_string<charT, traits, Allocator>
|
3218 | 3215 | operator+(const charT* lhs, basic_string<charT, traits, Allocator>&& rhs);
|
3219 | 3216 | \end{itemdecl}
|
3220 | 3217 |
|
3221 | 3218 | \begin{itemdescr}
|
3222 | 3219 | \pnum
|
3223 |
| -\returns |
3224 |
| -\tcode{std::move(rhs.insert(0, lhs))}. |
3225 |
| - |
3226 |
| -\pnum |
3227 |
| -\remarks |
3228 |
| -Uses |
3229 |
| -\tcode{traits::length()}. |
3230 |
| -\end{itemdescr} |
3231 |
| - |
3232 |
| -\indexlibrarymember{operator+}{basic_string}% |
3233 |
| -\begin{itemdecl} |
3234 |
| -template<class charT, class traits, class Allocator> |
3235 |
| - basic_string<charT, traits, Allocator> |
3236 |
| - operator+(charT lhs, const basic_string<charT, traits, Allocator>& rhs); |
3237 |
| -\end{itemdecl} |
3238 |
| - |
3239 |
| -\begin{itemdescr} |
3240 |
| -\pnum |
3241 |
| -\returns |
3242 |
| -\tcode{basic_string<charT, traits, Allocator>(1, lhs) + rhs}. |
| 3220 | +\effects |
| 3221 | +Equivalent to: |
| 3222 | +\begin{codeblock} |
| 3223 | +rhs.insert(0, lhs); |
| 3224 | +return std::move(rhs); |
| 3225 | +\end{codeblock} |
3243 | 3226 | \end{itemdescr}
|
3244 | 3227 |
|
3245 | 3228 | \indexlibrarymember{operator+}{basic_string}%
|
3246 | 3229 | \begin{itemdecl}
|
3247 | 3230 | template<class charT, class traits, class Allocator>
|
3248 | 3231 | basic_string<charT, traits, Allocator>
|
3249 |
| - operator+(charT lhs, basic_string<charT, traits, Allocator>&& rhs); |
| 3232 | + operator+(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs); |
3250 | 3233 | \end{itemdecl}
|
3251 | 3234 |
|
3252 | 3235 | \begin{itemdescr}
|
3253 | 3236 | \pnum
|
3254 |
| -\returns |
3255 |
| -\tcode{std::move(rhs.insert(0, 1, lhs))}. |
| 3237 | +\effects |
| 3238 | +Equivalent to: |
| 3239 | +\begin{codeblock} |
| 3240 | +basic_string<charT, traits, Allocator> r = rhs; |
| 3241 | +r.insert(0, lhs); |
| 3242 | +return r; |
| 3243 | +\end{codeblock} |
3256 | 3244 | \end{itemdescr}
|
3257 | 3245 |
|
3258 | 3246 | \indexlibrarymember{operator+}{basic_string}%
|
3259 | 3247 | \begin{itemdecl}
|
3260 | 3248 | template<class charT, class traits, class Allocator>
|
3261 | 3249 | basic_string<charT, traits, Allocator>
|
3262 |
| - operator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs); |
| 3250 | + operator+(charT lhs, const basic_string<charT, traits, Allocator>& rhs); |
3263 | 3251 | \end{itemdecl}
|
3264 | 3252 |
|
3265 | 3253 | \begin{itemdescr}
|
3266 | 3254 | \pnum
|
3267 |
| -\returns |
3268 |
| -\tcode{lhs + basic_string<charT, traits, Allocator>(rhs)}. |
3269 |
| - |
3270 |
| -\pnum |
3271 |
| -\remarks |
3272 |
| -Uses |
3273 |
| -\tcode{traits::length()}. |
| 3255 | +\effects |
| 3256 | +Equivalent to: |
| 3257 | +\begin{codeblock} |
| 3258 | +basic_string<charT, traits, Allocator> r = rhs; |
| 3259 | +r.insert(r.begin(), lhs); |
| 3260 | +return r; |
| 3261 | +\end{codeblock} |
3274 | 3262 | \end{itemdescr}
|
3275 | 3263 |
|
3276 | 3264 | \indexlibrarymember{operator+}{basic_string}%
|
3277 | 3265 | \begin{itemdecl}
|
3278 | 3266 | template<class charT, class traits, class Allocator>
|
3279 | 3267 | basic_string<charT, traits, Allocator>
|
3280 |
| - operator+(basic_string<charT, traits, Allocator>&& lhs, const charT* rhs); |
| 3268 | + operator+(charT lhs, basic_string<charT, traits, Allocator>&& rhs); |
3281 | 3269 | \end{itemdecl}
|
3282 | 3270 |
|
3283 | 3271 | \begin{itemdescr}
|
3284 | 3272 | \pnum
|
3285 |
| -\returns |
3286 |
| -\tcode{std::move(lhs.append(rhs))}. |
3287 |
| - |
3288 |
| -\pnum |
3289 |
| -\remarks |
3290 |
| -Uses |
3291 |
| -\tcode{traits::length()}. |
| 3273 | +\effects |
| 3274 | +Equivalent to: |
| 3275 | +\begin{codeblock} |
| 3276 | +rhs.insert(rhs.begin(), lhs); |
| 3277 | +return std::move(rhs); |
| 3278 | +\end{codeblock} |
3292 | 3279 | \end{itemdescr}
|
3293 | 3280 |
|
3294 | 3281 | \indexlibrarymember{operator+}{basic_string}%
|
|
3300 | 3287 |
|
3301 | 3288 | \begin{itemdescr}
|
3302 | 3289 | \pnum
|
3303 |
| -\returns |
3304 |
| -\tcode{lhs + basic_string<charT, traits, Allocator>(1, rhs)}. |
| 3290 | +\effects |
| 3291 | +Equivalent to: |
| 3292 | +\begin{codeblock} |
| 3293 | +basic_string<charT, traits, Allocator> r = lhs; |
| 3294 | +r.push_back(rhs); |
| 3295 | +return r; |
| 3296 | +\end{codeblock} |
3305 | 3297 | \end{itemdescr}
|
3306 | 3298 |
|
3307 | 3299 | \indexlibrarymember{operator+}{basic_string}%
|
|
3313 | 3305 |
|
3314 | 3306 | \begin{itemdescr}
|
3315 | 3307 | \pnum
|
3316 |
| -\returns |
3317 |
| -\tcode{std::move(lhs.append(1, rhs))}. |
| 3308 | +\effects |
| 3309 | +Equivalent to: |
| 3310 | +\begin{codeblock} |
| 3311 | +lhs.push_back(rhs); |
| 3312 | +return std::move(lhs); |
| 3313 | +\end{codeblock} |
3318 | 3314 | \end{itemdescr}
|
3319 | 3315 |
|
3320 | 3316 | \rSec3[string.comparison]{Non-member comparison functions}
|
|
0 commit comments