当前位置: 首页 > news >正文

[modern c++] 类型萃取 type_traits

前言:

#include <type_traits>

type_traits 又叫类型萃取,是一个在编译阶段用于进行 类型判断/类型变更 的库,在c++11中引入。因为其工作阶段是在编译阶段,因此被大量应用在模板编程中,同时也可以结合 constexpr 这种在编译阶段就进行计算的语句进行编译阶段的运算。

类型判断:

判断模板类型是不是class类型

template<typename T>
void function(T){if(std::is_class(T)){printf("T is class type");}
}

判断两个模板类型是否相同

template<typename T,typename U>
void function(T,U){if(std::is_same(T,U)){printf("T and U is same type");}
}

类型变更:

移除/添加const限制

template<typename T>
void removeConst(T t){std::remove_const<T>(t);
}template<typename T>
void removeConst(T t){std::add_const<T>(t);
}

更多功能参考:

Standard library header <type_traits> (C++11) - cppreference.com

http://www.lryc.cn/news/380666.html

相关文章:

  • 函数模板和类模板的区别
  • ChatGPT 提示词技巧一本速通
  • 【windows解压】解压文件名乱码
  • 使用Flink CDC实时监控MySQL数据库变更
  • 学生课程信息管理系统
  • 如何看待鸿蒙HarmonyOS?
  • 【论文复现|智能算法改进】一种基于多策略改进的鲸鱼算法
  • yarn安装配置及使用教程
  • 有那么点道理。
  • 蔚蓝资源包和数据分析
  • MySQL----利用Mycat配置读写分离
  • 【科学计算与可视化】2. pandas 基础
  • 医学记录 --- 腋下异味
  • 【Linux】进程间通信_1
  • Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.6 在kernel 中实现系统复位和系统关机驱动
  • 如何在Java中进行单元测试?
  • 代码随想录训练营Day32
  • 代码随想录训练营Day31
  • Docker 多阶段构建
  • Linux应急响应——知攻善防应急靶场-Linux(1)
  • 基于CDMA的多用户水下无线光通信(1)——背景介绍
  • vlan三层交换技术--交换机--(自作)
  • 基于springboot websocket和okhttp实现消息中转
  • @PostConstruct 注解的方法用于资源的初始化
  • (一)SvelteKit教程:hello world
  • 华为Atlas NPU ffmpeg 编译安装
  • Python 虚拟环境 requirements.txt 文件生成 ;pipenv导出pip安装文件
  • Less与Sass的区别
  • 力扣-2663
  • CausalMMM:基于因果结构学习的营销组合建模