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

c++ 参数类型不同修饰(const/volatile//)的函数重载优先级

测试编译器:VS2022 c++latest

测试方法: 写出如下特化类,然后尝试调用print(),如果编译器报调用不明确,那么表示当前级别有多个重载函数,把被提示的重载全部注释,编译器会提示下一组,如果当前级别仅有一个重载,则编译器会在连接阶段报符号未定义,也把这个未定义函数注释掉。最后编译器会到达void foo(...){},则已经穷尽了所有匹配。

#define foo(T) void foo(T b);

template<typename Input, typename Base>
struct Priority;
template<typename Base>
struct Priority<Base&&, Base>
{
    using Input = Base&&;
    const char* str;
    foo(Base);
    foo(Base&);
    foo(Base&&);
    foo(const Base&);
    foo(const Base&&);
    foo(volatile Base &);
    foo(volatile Base&&);
    foo(const volatile Base&&);

    // void (foo)(...){}

    void print()
    {
        Base b = {};
        (foo)((Input)b);
    }
};
 

:

相关文章:

  • ownips的自救指南:一次账号封停事件的心路历程与解决策略
  • 【芯片设计- RTL 数字逻辑设计入门 11.1 -- 状态机实现 移位运算与乘法 1】
  • RabbitMQ-4.MQ的可靠性
  • Qt Windows和Android使用MuPDF预览PDF文件
  • mac电脑flutter环境配置,解决疑难问题
  • 力扣:47. 全排列 II
  • Oracle12c之Sqlplus命令行窗口基本使用
  • LLaMA 模型中的Transformer架构变化
  • LabVIEW电能质量监测系统
  • 详述FlinkSql Join操作
  • c++设计模式之装饰器模式
  • 为电子表格嵌入数据库,Excel/WPS一键升级为管理系统
  • 零基础学Python之网络编程
  • 【Linux】缓冲区与缓冲区的刷新策略
  • 微信自动预约小程序开发指南:从小白到专家
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • node入门
  • 阿里云应用高可用服务公测发布
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 飞驰在Mesos的涡轮引擎上
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • ​configparser --- 配置文件解析器​
  • # 数据结构
  • ${ }的特别功能
  • (Matlab)使用竞争神经网络实现数据聚类
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (一)插入排序
  • (转) Android中ViewStub组件使用
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .cfg\.dat\.mak(持续补充)
  • .net 生成二级域名
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net6+aspose.words导出word并转pdf
  • .NET轻量级ORM组件Dapper葵花宝典
  • .net网站发布-允许更新此预编译站点
  • .sys文件乱码_python vscode输出乱码
  • /etc/motd and /etc/issue
  • ?php echo ?,?php echo Hello world!;?
  • @Mapper作用
  • @SpringBootApplication 包含的三个注解及其含义
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Android]使用Git将项目提交到GitHub
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用
  • [hive] sql中distinct的用法和注意事项
  • [HOW TO]怎么在iPhone程序中实现可多选可搜索按字母排序的联系人选择器
  • [Jenkins] Docker 安装Jenkins及迁移流程
  • [LLM]大模型八股知识点(一)
  • [Markdown] 02 简单应用 第二弹
  • [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'XXX' 无效