いくつかの文字列を 1 つにマージする必要があり、効率的な理由から、この状況ではムーブ セマンティックを使用したいと考えています (もちろん、これらの文字列はもう使用されません)。だから私は試しました
#include <iostream>
#include <algorithm>
#include <string>
int main()
{
std::string hello("Hello, ");
std::string world("World!");
hello.append(std::move(world));
std::cout << hello << std::endl;
std::cout << world << std::endl;
return 0;
}
私はそれが出力されると思いました
Hello, World!
## NOTHING ##
しかし、実際には出力されました
Hello, World!
World!
に置き換えても同じ結果になりappend
ますoperator+=
。それを行う適切な方法は何ですか?
debian 6.10でg ++ 4.7.1を使用しています