返回值省略

如果从函数返回 prvalue 表达式 ,并且 prvalue 表达式与函数的返回类型具有相同的类型,则可以省略 prvalue 临时的副本:

std::string func()
{
  return std::string("foo");
}

在这种情况下,几乎所有编译器都会忽略临时构造。