Template
GarryLau
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
判断一个类型是否有reserve方法
使用std::enable_if_t来帮助选择匹配的函数。以容器是否含有reserve方法作为示例。原创 2024-06-22 20:09:43 · 237 阅读 · 0 评论 -
函数重载及SFINAE
函数重载及SFINAE原创 2024-06-16 08:02:16 · 435 阅读 · 0 评论 -
可变参数函数
可变参数函数原创 2024-05-13 23:43:33 · 238 阅读 · 0 评论 -
特化标准库中的类模板
以std::map和std::less作为载体说明如何特化标准库中的类模板。原创 2024-05-08 23:04:57 · 333 阅读 · 0 评论 -
模板显式特化与隐式特化
当使用一个模板时,称为实例化模板。模板实例是编译器通过将模板参数应用于模板定义而创建的具体函数或类。模板实例又称为特化。因此,rational是模板rational的一个特化。因此,特化是针对特定一组模板参数实现模板的过程。C++允许为一个特定的模板参数集合定义一个定制的特化;也就是说,可以创建一个规则的例外情况。当你自己定义特化而不是让编译器为你实例化模板时,它被称为显式特化(也称为完全特化)。编译器自动创建的特化将是隐式特化。原创 2024-05-08 23:04:18 · 463 阅读 · 0 评论 -
(类)偏特化Partial Specialization
当编写一个模板特化,涉及部分但不是全部模板参数时,它被称为偏特化(Partial Specialization)。【注意,偏特化是针对类模板而言,函数模板不可偏特化,只能全特化】原创 2024-05-08 23:03:39 · 502 阅读 · 0 评论 -
值模板参数Value Template Parameters
模板通常使用类型作为参数,但它们也可以使用值。使用类型和可选名称声明一个值模板参数,方式与声明函数参数类似。值模板参数仅限于可以指定编译时常量的类型是bool、char、int等,但不允许使用浮点类型、字符串字面值和类。原创 2024-05-08 23:02:48 · 393 阅读 · 0 评论 -
类模板是创建类的模式
类模板和函数模板一样,使用关键字template引入一个类模板。类模板是创建类的模式,通过提供模板参数来实现原创 2024-05-06 19:46:41 · 292 阅读 · 0 评论 -
使用模板时模板的定义应该放到头文件
在使用函数模板之前,编译器必须看到不仅仅是一个声明,通常编译器需要完整的函数模板定义。换句话说,如果你在头文件中定义了一个模板,那么这个头文件必须包含该函数模板的主体。原创 2024-05-06 17:30:05 · 378 阅读 · 0 评论 -
对于模板,编译器不会执行任何自动类型转换
作为一个模板,编译器不会执行任何自动类型转换。编译器无法知道你想要模板参数具有第一个函数参数的类型,或第二个函数参数的类型,或者有时是第一个,有时是第二个。相反,编译器要求你明确地写出你的意思。在这种情况下,你可以通过将所需的类型放在尖括号中告诉编译器要使用哪种类型作为模板参数。原创 2024-05-06 16:47:07 · 313 阅读 · 0 评论 -
函数模板含有多个模板参数
如果一个模板接受多个参数,用逗号分隔参数。使用时必要情况下需要主动传入模板参数。原创 2024-05-06 16:45:19 · 296 阅读 · 0 评论 -
模板的魔力发生在编译时
模板的魔力发生在编译时。原创 2024-05-05 23:40:23 · 350 阅读 · 0 评论
分享