我需要将一些字符串合并为一个,并且出于有效的原因,我想在这种情况下使用移动语义(当然这些字符串将不再使用)。所以我尝试了
#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