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

c++ std::invoke

测试代码如下:

#include <iostream>
#include <functional>pair<int, int> getMinAndMax(int a, int b) {int min = a < b ? a : b;int max = a > b ? a : b;return make_pair(min, max);
}// 测试invoke函数的用法
void testInvoke() {// 调用普通函数pair<int, int> res = invoke(getMinAndMax, 9527, 1);cout << "min: " << res.first << ", max: " << res.second << endl;// 调用成员函数struct MyStru {string info;void test(int x) { std::cout << "x = " << x << std::endl; }static void staticFunc(string str) {std::cout << str << std::endl;}};MyStru myStruct;myStruct.info = "小甜甜";invoke(&MyStru::test, myStruct, 10);invoke(&MyStru::staticFunc, "牛夫人");// 调用lambda表达式invoke([](string str) { std::cout << str << std::endl; }, "我对你的敬仰如滔滔江水连绵不绝。");// 通过智能指针调用auto ptr = std::make_unique<MyStru>();invoke(&MyStru::test, myStruct, 9527);// 修改成员变量cout << "修改前info: " << myStruct.info << endl;invoke(&MyStru::info, myStruct) = "一个月几百块你玩什么命啊";cout << "修改后info: " << myStruct.info << endl;// 调用仿函数:struct Functor {void operator()(const string& str) const {std::cout << str << std::endl;}};Functor f;std::invoke(f, "段王爷");
}

打印:

ok.

http://www.xdnf.cn/news/982405.html

相关文章:

  • influxdb3常用查询命令
  • 小型综合实验拓扑图(eNSP)
  • [学习] Costas环详解:从原理到实战
  • MCGS和1200plc变量表格式编辑
  • [docker]--解析 Docker 镜像拉取日志:状态与分层拉取逻辑
  • Cohen–Grossberg神经网络
  • python 实现决策树规则
  • 变压吸附制氮设备的工艺特点
  • OAuth 2.0中/oauth/authorize接口的核心作用解析
  • 【数据分析】RNA-seq 数据分析:差异表达、火山图与功能富集分析
  • 「日立涡旋压缩机」携手企企通,打造AI数智供应链协同新范式
  • 嵌入式开发学习日志(数据库II 网页制作)Day38
  • 计算机网络 : 数据链路层
  • (十)量子注意力机制:深度学习与量子计算的交叉融合探索
  • Linux【7】------Linux系统编程(进程间通信IPC)
  • YOLOv1 技术详解:目标检测的实时革命
  • mac电脑.sh文件,用来清除git当前分支
  • 【深度学习:进阶篇】--2.4.BN与神经网络调优
  • 曼昆《经济学原理》第九版 第十六章垄断竞争
  • UE5创建3D 按钮
  • Mac安装docker desktop
  • 云原生核心技术 (12/12): 终章:使用 GitLab CI 将应用自动部署到 K8s (保姆级教程)
  • C++037(复制、比较、长度字符数组)
  • `document.domain` API 的废弃与现代 Web 开发的转型
  • 归并排序详解:优雅的分治艺术
  • 实现 Spring Boot 3的组合注解,java
  • S2B2B农产品供应链交易多平台开发有哪些发展前景?如何维护?
  • docker 安装postgre并使用php进行连接
  • Spring MVC完全指南 - 从入门到精通
  • 华为交换机远程登录配置