c++命名的返回值省略
示例
如果从函数返回左值表达式,则此左值:
表示该函数局部的自动变量,将在return
自动变量不是函数参数
并且变量的类型与函数的返回类型相同
如果所有这些都成立,那么可以取消从左值的复制/移动:
std::string func()
{
std::string str("foo");
//做东西
return str;
}更复杂的情况适合进行省略,但情况越复杂,编译器实际淘汰它的可能性就越小:
std::string func()
{
std::string ret("foo");
if(some_condition)
{
return "bar";
}
return ret;
}编译器仍然可以忽略ret,但是这样做的机会降低了。
如前所述,值参数不允许省略。
std::string func(std::string str)
{
str.assign("foo");
//做东西
return str; //不可能省略
}
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短