August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
考虑标准库模板pair的使用:
很多人已经发现,必须指明模板参数类型是很烦琐的,因此标准库提供了一个函数make_pair(),它能从其函数实参推断出pair的模板参数并返回:
这引出一个很明显的问题“为什么不能从构造函数参数推断模板参数?”于是,在C++17中我们可以这样做了,即
这不仅是pair的问题,make_函数非常常见。考虑一个简单的例子:
显然,这简化了符号表示并消除了误输入的冗余模板参数类型引起的烦恼。但是,这不是万能灵药。推断可能导致奇怪的结果(make_函数和构造函数机制都是如此)。考虑下面的代码:
C风格字符串字面值的类型是const char*(参见1.7节)。如果我们不想这样,就应使用后缀s来得到恰当的string类型(参见9.2节)。如果初始值列表中的元素具有不同类型,就无法推断出唯一元素类型,从而得到一个错误。 ...
Read now
Unlock full access