zoukankan      html  css  js  c++  java
  • C++ 模板特化、偏特化测试程序

    #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
    
    }
    

      

  • 相关阅读:
    PHP thinkPHP6.0 部署
    ch09 Sql导入语句
    自定义map 搜索
    MySql 语句
    自定义Mappter
    三袋米的故事
    WPF中实现文件夹对话框(OpenFileDialog in WPF)
    web通过Ajax与WCF交互
    项目管理之我见-程序员程序开发步骤
    存储过程
  • 原文地址:https://www.cnblogs.com/alexYuin/p/11921840.html
Copyright © 2011-2022 走看看