#include <iostream>

// 偏特化的模板不会自己添加构造函数 ctor 和 析构函数 dtor

#if 1
// P1
template <typename T1, typename T2>
class Stack
{
public:
Stack() { std::cout << "T, T" << std::endl; };
~Stack() {}; private: }; #endif // 0 //////////////////////////////////////////////////////////////////// #if 1
// P2
template <typename T1>
class Stack<int, T1>
{
public:
Stack() { std::cout << "int, T1" << std::endl; };
~Stack() {}; private: }; #endif // 0 //////////////////////////////////////////////////////////////////// #if 1
// P3
template <typename T1>
class Stack<T1, int>
{
public:
Stack() { std::cout << "T1, int" << std::endl; };
~Stack() {}; private: }; #endif // 0 //////////////////////////////////////////////////////////////////// #if 0
// P4
template <>
class Stack<int, int>
{
public:
Stack() { std::cout << "int, int" << std::endl; };
~Stack() {}; private: }; //template<>
//inline void Stack<int, int>::p()
//{
// std::cout << "T, int" << std::endl;
//}
#endif // 0 int main()
{
// 调用优先级
Stack<double, double> s1; // P1
Stack<float, int> s2; // P3 > P1
Stack<int, int> s3; // P4 > (P3 或者 P2,不能共存) > P1
Stack<int, double> s4; // P2 > P1 }

  

C++ 模板特化、偏特化测试程序的更多相关文章

  1. C++的模板特化 和 STL中iterator_traits模板的偏特化

    C++中有类模板和函数模板,它们的定义如下所示: 类模板: template<class T1,class T2> class C { //... }; 函数模板: template< ...

  2. c++模板特化偏特化

    模板为什么要特化,因为编译器认为,对于特定的类型,如果你对某一功能有更好地实现,那么就该听你的. 模板分为类模板与函数模板,特化分为全特化与偏特化.全特化就是限定死模板实现的具体类型,偏特化就是模板如 ...

  3. C++模板的偏特化与全特化

    模板的声明 类模板和函数模板的声明方式是一样的,在类定义/模板定义之前声明模板参数列表.例如: // 类模板 template <typename T1, typename T2> cla ...

  4. STL 全特化/偏特化

    template<class T> class Compare { public: static bool isEqual(const T& lh,const T& rh) ...

  5. C++ 函数模板“偏特化”

         模板是C++中很重要的一个特性,利用模板可以编写出类型无关的通用代码,极大的减少了代码量,提升工作效率.C++中包含类模板.函数模板,对于需要特殊处理的类型,可以通过特化的方式来实现特定类型 ...

  6. C++中模板的特化与偏特化

    1.引言 C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现.目前,STL在C++社区中得到了广泛的关注.应用和研究.理 ...

  7. [转]C++中模板的特化与偏特化

    转载自:http://hi.baidu.com/klcdyx2008/blog/item/5adbf77b79f316f90bd1873c.html 1.引言C++中的模板分为类模板和函数模板,虽然它 ...

  8. 【校招面试 之 C/C++】第2题 函数模板、类模板、特化、偏特化

    1.C++模板 说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板.我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样 ...

  9. oop &&GP 模板 ---> 特化和偏特化

    OOP面向对象编程 GP泛型编程(generic programming) 两者的主要区别就是OOP将数据和对数据的操作放在一起, GP就是将数据和操作独立开来 GP:   数据就是container ...

  10. C++模板的特化与偏特化

    http://cppblog.com/SmartPtr/archive/2007/07/04/27496.html (1) 类模板定义一个栈的类模板,它可以用来容纳不同的数据类型 template & ...

随机推荐

  1. 《目标:OKR与KPI漫谈》

    一.为什么要写这个 写这个题目其实是很偶然的,因为到年中了,公司的同事和领导都要看一下上半年的OKR的完成情况,同时也要制定下下半年的OKR,突然想到了之前在天津的公司时,大家说的是KPI,现在说的是 ...

  2. java8-06-四大函数式接口

    在使用lamdba表达式需要函数式接口的支持    java8已经提供了很多函数式接口   在java.util.function包下 

  3. LeetCode 200. 岛屿数量

    习题地址 https://leetcode-cn.com/problems/number-of-islands/ 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水 ...

  4. Linux系统管理图文详解超详细精心整理

    前言:带你遨游于linux系统管理知识的海洋,沐浴春日里的阳光,循序渐进,看完之后收获满满. 本次讲解基于linux(centos6.5)虚拟机做的测试,centos7估计以后有时间再更新啊. lin ...

  5. 【VM配置】配置主机名称、网卡和yum源配置

    一,.配置主机名 为了对主机能进行分区,除了要有ip地址外还需要主机名,主机之间可以通过这个类似域名的名称来相互访问.linux系统中主机名配置文件一般在/etc/hostname文件中.另外我们也可 ...

  6. 17-REST framework-Request与Response

    1.Django REST framework提供的视图的主要作用 1.控制序列化器的执行(检验,保存,转换数据) 2.控制数据库查询的执行 Request与Response 1.Request RE ...

  7. H5混合应用之webview元素定位工具

    一.工具选择 webview元素定位有三种方式: 使用driver.page_source方法,将获取到的页面内容写入到一个html文件中,然后使用浏览器打开html文件,使用F12调试用具进行元素定 ...

  8. Django日志记录详细的报错信息

    当服务器500错误的时候,普通日志只会记录一行500的request信息,并不会记录详细的报错定位 [ERROR] 2019-06-12 15:07:03,597 "GET /api/v1/ ...

  9. Xshell的一些使用方法和注意事项

    xshell 本文就是想记录下最近遇到的一些问题,以及一些 xshell 能帮助我们提升效率的方面. xshell 编码问题 我们连接服务器,是通过本地登录到 跳板机,然后通过跳板机登录到 我们的服务 ...

  10. Python爬取酷狗飙升榜前十首(100)首,写入CSV文件

    酷狗飙升榜,写入CSV文件 爬取酷狗音乐飙升榜的前十首歌名.歌手.时间,是一个很好的爬取网页内容的例子,对爬虫不熟悉的读者可以根据这个例子熟悉爬虫是如何爬取网页内容的. 需要用到的库:requests ...