mirror of
https://github.com/CnTransGroup/EffectiveModernCppChinese.git
synced 2025-01-30 22:00:30 +08:00
deploy: 8edc363ea7
This commit is contained in:
parent
61fc383a47
commit
cecb07abe3
@ -310,7 +310,7 @@ reduceAndCopy(T&& frac) //通用引用的形参
|
|||||||
return std::move(w); //把w看成右值,因为不执行拷贝消除
|
return std::move(w); //把w看成右值,因为不执行拷贝消除
|
||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>这种情况与按值返回函数形参的情况很像。形参们没资格参与函数返回值的拷贝消除,但是如果作为返回值的话编译器会将其视作右值。结果就是,如果代码如下:</p>
|
<p>这种情况与返回函数传值形参的情况很像。传值形参们没资格参与函数返回值的拷贝消除,但是如果作为返回值的话编译器会将其视作右值。结果就是,如果代码如下:</p>
|
||||||
<pre><code class="language-cpp">Widget makeWidget(Widget w) //传值形参,与函数返回的类型相同
|
<pre><code class="language-cpp">Widget makeWidget(Widget w) //传值形参,与函数返回的类型相同
|
||||||
{
|
{
|
||||||
…
|
…
|
||||||
|
@ -3639,7 +3639,7 @@ reduceAndCopy(T&& frac) //通用引用的形参
|
|||||||
return std::move(w); //把w看成右值,因为不执行拷贝消除
|
return std::move(w); //把w看成右值,因为不执行拷贝消除
|
||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>这种情况与按值返回函数形参的情况很像。形参们没资格参与函数返回值的拷贝消除,但是如果作为返回值的话编译器会将其视作右值。结果就是,如果代码如下:</p>
|
<p>这种情况与返回函数传值形参的情况很像。传值形参们没资格参与函数返回值的拷贝消除,但是如果作为返回值的话编译器会将其视作右值。结果就是,如果代码如下:</p>
|
||||||
<pre><code class="language-cpp">Widget makeWidget(Widget w) //传值形参,与函数返回的类型相同
|
<pre><code class="language-cpp">Widget makeWidget(Widget w) //传值形参,与函数返回的类型相同
|
||||||
{
|
{
|
||||||
…
|
…
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user