std::mem_fn和std::mem_fun

std::mem_fnstd::mem_fun(deprecated)
Convert member function to function object,即将成员函数转化为函数对象,这样就可以像普通函数那样使用。

示例一:

#include <iostream>     // std::cout
#include <functional>   // std::mem_fnstruct int_holder {int value;int triple() { return value * 3; }
};int main() {int_holder five{ 5 };// call member directly:std::cout << five.triple() << '\n';// same as above using a mem_fn:auto triple = std::mem_fn(&int_holder::triple);std::cout << triple(five) << '\n';
}

示例二:

 template<class T>class Fraction {public:Fraction():Fraction(0,1) {std::cout << "Fraction default-ctor called.\n";}Fraction(T num, T den):numerator_(num), denominator_(den) {std::cout << "Fraction ctor called.\n";}virtual ~Fraction() {std::cout << "Fraction dtor called.\n";}T getNumerator() {return numerator_;}T getDenominator() {return denominator_;}template<class U>U calculateValue();private:T numerator_;T denominator_;};template<class T>template<class U>U Fraction<T>::calculateValue() {return static_cast<U>(numerator_) / static_cast<U>(denominator_);}auto main()->void {Fraction<float> fra1(3.f, 5.f);double val1 = fra1.calculateValue<double>();std::cout << val1 << std::endl;            // 0.6auto memfunc1 = std::mem_fn(&Fraction<float>::calculateValue<double>);std::cout << memfunc1(fra1) << std::endl;  // 0.6}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL-InnoDB数据存储结构

1、存储结构-页 索引结构提供了高效的索引方式&#xff0c;索引信息以及数据记录都保存在数据文件或索引文件中&#xff08;本质存储在页结构中&#xff09; 1.1、磁盘与内存交互的基本单位&#xff1a;页 在InnoDB中将数据划分为若干页&#xff0c;页的默认大小为&#xff…

webpack并行构建示例:

由于js的单线程特性&#xff0c;文件和任务时 要等待一个任务执行完成后执行下一个任务&#xff0c;但在实际开发中&#xff0c;很多任务是可以并行执行的&#xff08;如同时处理多个不同js文件或同事压缩多张图片&#xff09;&#xff0c;一些loader和插件&#xff08;thread-…

【数据结构】解密链表之旅(单链表篇)

前言 哈喽大家好&#xff0c;我是野生的编程萌新&#xff0c;首先感谢大家的观看。数据结构的学习者大多有这样的想法&#xff1a;数据结构很重要&#xff0c;一定要学好&#xff0c;但数据结构比较抽象&#xff0c;有些算法理解起来很困难&#xff0c;学的很累。我想让大家知道…

自制无感无刷电机驱动板

自制无感无刷电机驱动板 分别测试了基于C251的STC32G单片机、Arduino AVR的ATmega328PB、以及ARM的ST32F103单片机。 &#x1f9f2;测试转动效果 ✒目前市面上开源的有关无刷电机的项目数不胜数&#xff0c;其控制原理都大同小异&#xff0c;在没有领透其技术要领情况下&#x…

苍穹外卖项目---------收获以及改进(9-12)

①Spring Task-------实现系统定时任务 概念&#xff1a; 应用场景&#xff1a; 使用步骤&#xff1a; 实现订单超时和前一天派送中的订单的自动任务处理&#xff1a; Component Slf4j public class Mytask {Autowiredprivate OrderServiceimpl orderServiceimpl;/*** 处理订…

yarn 安装以及报错处理

前一种报错是由于没有安装yarn导致的&#xff0c;使用以下命令即可安装&#xff1a; npm install -g yarn 如果成功安装&#xff0c;将显示Yarn的版本号。 yarn --version 第二种报错是因为系统上的执行策略限制导致的。执行策略是一种安全功能&#xff0c;用于控制在计算机…

grafana10.x报错 Failed to upgrade legacy queries Datasource x was not found

问题 grafana 从6.x升级到10.x后&#xff0c;导入json文件后报错&#xff0c;数据源x查询不到&#xff0c;grafana不显示数据&#xff1b; Templating Failed to upgrade legacy queries Datasource x was not found解决方法 可能grafana升级后数据源找不到&#xff0c;在面板…

上海市计算机学会竞赛平台2023年10月月赛丙组三个数的中位数

题目描述 给定三个整数&#xff0c;请输出按大小排序后&#xff0c;位于正中间的数字。 输入格式 第一行&#xff1a;三个整数 &#x1d44e;a, &#x1d44f;b 与 &#x1d450;c 输出格式 第一行&#xff1a;单个整数表示三者的中位数 数据范围 −10000≤&#x1d44e…

CentOS7 源码编译 rtpengine9.5.8

CentOS7 不好搞&#xff0c;但应客户要求&#xff0c;不得不搞 选择 rtpengine9.5.8 版本而不是更新的版本&#xff0c;肯定是有自己的考虑的 不废话了&#xff0c;直接上脚本&#xff1a; #!/bin/bash# CentOS7 最小安装yum -y install epel-release yum -y install git gc…

Kafka官方文档中文版+Kafka面试题详解!

你了解kafka吗&#xff1f;目前它在一线互联网公司以迅雷不及掩耳之势得到了广泛的应用。但究竟是什么呢&#xff1f;Kafka最初于2011年在LinkedIn开发&#xff0c;自那时起经历了很多改进。如今它是一个完整的平台&#xff0c;允许您冗余地存储荒谬的数据量&#xff0c;拥有一…

SH150S1光电吊舱

SH150S1光电吊舱 1产品应用 SH150S1是一款三轴三光吊舱&#xff0c;集成了最远测程达3.0km&#xff0c;精度小于2米的半导体激光测距机&#xff0c;640512高分辨率红外相机&#xff0c;30倍光学变倍可见光相机以及高稳定精度平台框架&#xff1b;可安装于中小型无人机&#x…

【每日刷题】Day40

【每日刷题】Day40 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 2. 217. 存在重复元素 - 力扣&#xff08;Le…

vue2 报错,警告 解决方法 component name“Index“should always be multi-word

报错原因&#xff1a; 组件名称应该为俩个或俩个以上单词组成的&#xff0c;并且还要是大驼峰命名&#xff0c;例如&#xff1a;MyIndex&#xff0c;MyLogin等 解决方法一&#xff1a; 将组件名称改为俩个或俩个以上单词组成的名称&#xff0c;且为大驼峰命名&#xff0c;例如…

前端手写练习题及概念加深

通过举例和实际例子来加深前端的概念形式 1. 手写reduce 用法&#xff1a; // 手写 reduce const a [1, 3, 6, 8]const sum a.reduce((accu, curr) > accu curr, 0) console.log(sum, sum ) 在注释中解释 reduce 的手写方法 // 1. 明确参数累加函数&#xff0c;接受…

Django 和 Spring Boot

标题 Django (Python)Django提供的组件Django 的处理逻辑 Spring Boot (Java)Spring Boot 的特点Spring Boot 的处理逻辑 MVC设计模式模型&#xff08;Model&#xff09;视图&#xff08;View&#xff09;控制器&#xff08;Controller&#xff09;逻辑处理过程 Django 和 Spri…

Postman基础功能-Collection集合和批量运行

一、Collection&#xff08;集合&#xff09;介绍 当我们对一个或多个系统中的很多接口用例进行维护时&#xff0c;首先想到的就是对接口用例进行分类管理&#xff0c;同时还希望对这批接口用例做回归测试。 在 Postman 中也提供了这样一个功能&#xff0c;就是 Collec…

免费的GPT4终于要来了!OpenAI直播发布会详细解读!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

Docker下载镜像出现“missing signature key”如何解决?

“missing signature key” 通常与 Docker 配置有关&#xff0c;具体是 Docker 试图验证镜像的签名但未能找到相应的密钥。这种情况可能发生在启用了 Docker Content Trust (DCT) 的环境中&#xff0c;DCT 是一种安全功能&#xff0c;要求所有镜像必须有签名才能拉取。 原因 …

刚刚OpenAI发布ChatGPT-4o模型,免费使用GPT4o并免费提供更多功能

就在今日凌晨1点&#xff0c;OpenAI举行了春季发布会&#xff0c;发布了GPT-4o 并免费提供更多功能。 亲测GPT-4o已经可以免费试用&#xff0c;每个人都可以使用它并从中受益&#xff0c;GPT4终于不再是少部分人的玩物。 点击加入ChatGPT4交流群&#xff1a;https://www.aijour…

体彩、福彩中奖概率分析

体彩和福彩的中奖概率分析是一个涉及概率论、数理统计以及彩票玩法规则的复杂话题。 但我可以提供一个大致的框架和要点,供您参考和扩展。 一、引言 在引言部分,可以简要介绍彩票的起源、发展和在中国的影响。阐述彩票作为一种特殊的商品,其销售和购买过程中的中奖概率是吸…