Skip to Content
Effective Modern C++(中文版)
book

Effective Modern C++(中文版)

by Scott Meyers
April 2018
Intermediate to advanced
303 pages
4h 54m
Chinese
China Electric Power Press Ltd.
Content preview from Effective Modern C++(中文版)
型别推导
19
情况
2
ParamType
是个万能引用
对于持有万能引用形参的模板而言,规则就不那么显明了。此类形参的声明方式类似
右值引用(即在函数模板中持有型别形
T
,万能引用的声明型别写
T&&
),
是当传入的实参是左值时,其表现会有所不同。完整的过程将在条款
24
中揭示,但
此处先给出一个大纲:
如果
expr
是个左值,
T
ParamType
都会被推导为左值引用。这个结果具有双
重的奇特之处:首先,这是在模板型别推导中,
T
被推导为引用型别的唯一情形。
其次,尽管在声明时使用的是右值引用语法,它的型别推导结果却是左值引用。
如果
expr
是个右值,则应用“常规”(即情况
1
中的)规则。
例如:
template<typename T>
void f(
T&&
param);
// param
现在是个万能引用
int x = 27;
//
同前
const int cx = x;
//
同前
const int& rx = x;
//
同前
f(x);
// x
是个左值,所以
T
的型别是
int&
param
的型别也是
int&
f(cx);
// cx
是个左值,所以
T
的型别是
const int&
// param
的型别也是
const int&
f(rx);
// rx
是个左值,所以
T
的型别是
const int&
// param
的型别也是
const int&
f(27);
// 27
是个右值,所以
T
的型别是
int ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

流畅的Python(第2版)

流畅的Python(第2版)

Luciano Ramalho
Effective STL

Effective STL

Scott Meyers

Publisher Resources

ISBN: 9787519817749