zoukankan      html  css  js  c++  java
  • 参数宏实现模板

    #include <iostream>
    using namespace std;
    
    #define MAX(T) max_##T(T x, T y){return x < y ? y : x;} MAX(int) MAX(double) MAX(string) #define max(T) max_##T int main (void) {   cout << max(int)(1, 2) << endl;   cout << max(double)(1.2, 3.4) << endl;   cout << max(string)("hello", "world") << endl;   return 0; }

    优点:减少代码编辑量,同时实现了类似模板的类型无关形式编程。

    缺点:添加新类型调用时都需要手动添加其定义即MAX(T)

       对于返回值有限制,宏不是函数,本身只做文本替换,宏执行得到的结果是没有安全性检查的。MAX(T)展开并没有返回类型指定。

  • 相关阅读:
    ListCtrl中垂直滚动条自动滚动
    auth组件
    母版的继承
    mysql数据备份和恢复
    部署MHA
    安装mysql
    yum源优化
    存储过程
    redis哨兵、集群
    redis主从同步
  • 原文地址:https://www.cnblogs.com/kuikuitage/p/9310244.html
Copyright © 2011-2022 走看看