zoukankan      html  css  js  c++  java
  • C++模板特化

    C++中的模板特化和泛化相对应,是特殊的泛化,例如设计一个模板类,传入的类型如果不加限制那么就是泛化,如果加以限制,只能传入固定的几种类型,那么就是特化。

    模板特化示例代码:

    Myhash.h文件:
    #pragma once
    #include <stddef.h>
    template<class Key>
    struct Myhash {};
    template<>
    struct Myhash<char>
    {
     size_t operator ()(char x) const { return x; }
    };
    template<>
    struct Myhash<int>
    {
     size_t operator ()(int x) const { return x; }
    };
    template<>
    struct Myhash<long>
    {
     size_t operator ()(long x) const { return x; }
    };
     
    Myhash.cpp文件:
    #include "stdafx.h"
    #include "Myhash.h"
     
     
    调用:
    cout << Myhash<char>()('a') << endl;//输出为97
    cout << Myhash<int>()(50) << endl;//输出为50
     
     
  • 相关阅读:
    spring mvc 数据格式化
    spring mvc 数据转换
    spring mvc
    spring
    java+hibernate+mysql
    Jenkins使用TFS部署
    Docker基本命令
    MySQL主从配置
    Jenkins邮箱设置
    vlc 控件属性和方法
  • 原文地址:https://www.cnblogs.com/shougoule/p/13894124.html
Copyright © 2011-2022 走看看