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

C++ 中重载函数右值引用和左值引用匹配的优先级

C++ 中重载函数右值引用和左值引用匹配的优先级

在使用 C++ STL 里的 std::regex 时,遇到了一个问题:

std::sregex_iterator it_begin(html.begin(), html.end(),std::regex{R"raw("heading">.</h2>")raw"});

上面这种做法不行,原因是上面的代码可以匹配到下面代码:

 regex_token_iterator(_BidIt, _BidIt, const regex_type&&, int = 0,regex_constants::match_flag_type = regex_constants::match_default) = delete;

但是不能匹配到下面的代码:

 regex_token_iterator(_BidIt _First, _BidIt _Last, const regex_type& _Re, int _Sub = 0,regex_constants::match_flag_type _Fl = regex_constants::match_default): _Pos(_First, _Last, _Re, _Fl), _Cur(0), _Subs(&_Sub, &_Sub + 1) {_Init(_First, _Last);}

验证:

static void
value_function(const int32_t &&ir)
{(void)wprintf_s(L"rvalue: %d\n", ir);
}static void
value_function(const int32_t &il)
{(void)wprintf_s(L"lvalue: %d\n", il);
}int wmain(int argc, wchar_t *argv[])
{value_function(1);int n{ 2 };value_function(n);
}

输出结果是:

rvalue: 1
lvalue: 2
http://www.dtcms.com/a/292138.html

相关文章:

  • 【机器学习】第四章 回归算法
  • 主流开源LLM架构对比与突破·
  • 控制器(Controller)模块的架构与工作流程 -OpenExo
  • Azure可靠性架构指南:构建云时代的高可用系统
  • Java函数指南:从Function到BiFunction的深度解析
  • 电商项目_秒杀_架构及核心
  • 【Linux】进程概念
  • 以Java程序员角度理解MCP
  • 项目复盘核心要点
  • SQL Server 查询优化
  • Vue 脚手架基础特性
  • 前端自动化埋点:页面模块级行为跟踪与问题定位系统​​的技术设计方案
  • 浏览器地址栏输入URL回车后白屏分析
  • 【Web APIs】JavaScript 节点操作 ④ ( 节点操作案例 - 下拉菜单案例 )
  • Java+Vue构建的固定资产内控管理系统,融合移动端便捷与后台管理强大功能,模块完备,提供全量源码,轻松实现资产智能管控
  • 第十二章 用Java实现JVM之结束
  • 学习pwn需要的基本汇编语言知识
  • 漫画版:细说金仓数据库
  • LangGraph基础教程
  • 理解后端开发中的API设计原则
  • 哈希算法(Hash Algorithm)
  • 2025乐彩V8影视系统技术解析:双端原生架构与双H5免签封装实战 双端原生+双H5免签封装+TV级性能优化,一套代码打通全终端生态
  • Visual Studio Code 远端云服务器开发使用指南
  • gflags使用
  • Java 大视界 -- Java 大数据在智能交通自动驾驶车辆与周边环境信息融合与决策中的应用(357)
  • 新手向:基于Python的桌面便签与待办事项管理工具
  • [ARM]MDK出现报错error: A\L3903U的解决方法
  • Gradio, Streamlit, Dash:AI应用开发的效率之选
  • C# 析构函数
  • Unity中,Panel和 Canvas的区别