如何理解这些方式(包括不使变量的作用域不必要地变大,编写返回值的短函数,返回局部变量,可以消除对显式std :: move的大多数需要?
有人可以通过一些简单的例子弄清楚吗?我是C ++的新手。对于这个问题的任何提示,我将不胜感激。为了方便起见,我在下面发布了所有引号。
当源是右值(例如,返回处理或函数结果中的值)时,隐式完成移动,因此不要在这些情况下,通过显式编写move毫无意义地使代码复杂化。而是编写返回值的简短函数,并且功能的返回,而呼叫者接受返回自然优化。一般而言,请遵循本文档中的指南(包括不要使变量的作用域不必要地变大,编写简短的函数返回值,返回局部变量)有助于消除大多数需要显式std :: move。