![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模板
CCCSR
这个作者很懒,什么都没留下…
展开
-
C++ 模板特例化
文章目录介绍函数模板特例化类模板特例化介绍模板作为C++泛型编程的基础十分重要,其使得一份代码能用于处理多种数据类型。而有些时候,我们会希望对一些特定的数据类型执行不同的代码,这时就需要使用模板特例化(template specialization)。函数模板特例化首先说一个重要的,函数模板的特例化并不是函数重载,每一个特例化实际上是提供了另一个模板定义式,因此特例化不影响函数匹配。特例化一个函数模板时,必须为模板中的每个参数都给出实参,关键字template后跟一个<>templa原创 2020-12-05 17:08:25 · 2005 阅读 · 0 评论 -
C++11 可变参数模板
介绍一个可变参数模板是一个接受可变数目参数的模板函数或模板类。可变数目的参数成为参数包。存在两种参数包:模板参数包 ,表示零个或多个模板参数;函数参数包,表示零个或多个函数参数。用一个省略号来指出一个模板参数或函数参数表示一个包。在模板参数列表中,class…或typename…指出接下来的参数表示零个或多个类型的列表;一个类型名后面跟着的省略号表示零个或多个该给定类型的非类型参数的列表。在函数参数列表中,如果一个参数的类型是一个模板参数包,则此参数也是一个函数参数包。例如://Args是一个模板参数原创 2020-11-24 23:49:59 · 391 阅读 · 0 评论 -
C++ 引用折叠和右值引用参数
假定有一个模板如下tempalte<typename T> void f(T&&);如果有一个i为一个int对象,那么我们可能认为类似f(i)这样的调用是不合法的,因为通常不能将右值引用绑定到一个左值上:int i = 0;f(i);//向一个右值引用形参传入一个左值实参,是否正确?事实上,C++在正常绑定规则外定义了两个例外规则允许这种绑定。这两个例外规则是move标准库设施正确工作的基础。第一个例外规则影响右值引用参数的推断如何进行:当将一个左值传递给函数原创 2020-11-23 19:35:32 · 395 阅读 · 0 评论