考虑一个返回大字符串的函数:
std::string build_huge_string(unsigned long size)
{
std::string result;
result.reserve(size);
for (unsigned long i = 0; i < size; ++i)
result.push_back(i % 256);
return result;
}
它可能用在std::string huge_string = build_huge_string(65536);
这样的地方
有没有一种方法可以确保将result
的内容移入huge_string
而不复制价值64KB的内容?
默认情况下是这样吗? build_huge_string
是否应返回std::string&&
?应将return result;
替换为return std::move(result);
?