c++-C++的mem_fun_ref如何支持多参数的类函数

问题描述

C++的mem_fun_ref如何支持多参数的类函数
今天想探究一下mem_fun_ref的用法。发现,对于无参数或者一个参数的类函数它可以建立引用,但两个或多个参数的函数呢,应该怎么建立引用呢?求高人指点。像下面代码那样,怎么给add函数建立引用呢?

#include <functional>#include <iostream>using namespace std;class Base {public:    void say() {        cout << ""hello"" << endl;    }    double pi() {        return 3.1415926;    }    int twice(int x) {        return (2 * x);    }    int add(int x int y) {        return (x + y);    }};int main() {    mem_fun_ref_t<void Base> handle1 = mem_fun_ref(&Base::say);    mem_fun_ref_t<double Base> handle2 = mem_fun_ref(&Base::pi);    mem_fun1_ref_t<int Base int> handle3 = mem_fun_ref(&Base::twice);    // mem_fun1_ref_t<int Base int int> handle4 = mem_fun_ref(&Base::add);    Base b;    handle1(b);    cout << handle2(b) << endl;    cout << handle3(b 4) << endl;    // cout << handle4(b 4 3) << endl;    return 0;}
时间: 2024-12-21 20:19:14

c++-C++的mem_fun_ref如何支持多参数的类函数的相关文章

c/c++支持可变参数的函数

一.为什么要使用可变参数的函数? 一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数.但在某些情况下希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数.这也是c功能强大的一个方面,其它某些语言,比如fortran就没有这个功能. 典型的可变参数函数的例子有大家熟悉的printf().scanf()等. 二.c/c++如何实现可变参数的函数? 为了支持可变参数函数,C语言引入新的调用协议, 即C语言调用约定 __cdecl . 采用C/

jQuery支持动态参数将函数绑定到事件上的方法

这篇文章主要介绍了jQuery支持动态参数将函数绑定到事件上的方法,实例分析了两种支持动态参数的函数绑定技巧,需要的朋友可以参考下     本文实例讲述了jQuery支持动态参数将函数绑定到事件上的方法.分享给大家供大家参考.具体分析如下: 下面的js代码提供了两种方法用于绑定函数到事件,其中方法二可以传递动态参数,非常实用 ? 1 2 3 4 5 6 7 8 9 //方法一 $('#foo').click(function(event) { alert('User clicked on "fo

jQuery支持动态参数将函数绑定到事件上的方法_jquery

本文实例讲述了jQuery支持动态参数将函数绑定到事件上的方法.分享给大家供大家参考.具体分析如下: 下面的js代码提供了两种方法用于绑定函数到事件,其中方法二可以传递动态参数,非常实用 //方法一 $('#foo').click(function(event) { alert('User clicked on "foo."'); }); //方法二, 支持动态传参 $('#foo').bind('click', {test1:"abc", test2:"

javascript-new Date()ie7里不支持写参数 我获取到的2012-9-20这个字符串怎么转成毫秒?

问题描述 new Date()ie7里不支持写参数 我获取到的2012-9-20这个字符串怎么转成毫秒? var str='2012-9-20'; var kk=new Date(str);//ie7 中不支持这样的写法.... var y=kk.getFullYeat();这样获取不到 有没有其它方法?把这个str字符串转成毫秒? 解决方案 var str = '2012-9-20'; str = str.replace(/-/g, '/'); var kk = new Date(str);

IIS环境下PHP rewrite重写设置(支持中文参数)_win服务器

在网站根目录下加入: Web.Config: <?xml version="1.0" encoding="UTF-8″?> <configuration> <system.webServer> <rewrite> <rules> <rule name="cnUrl" stopProcessing="true"> <match url="!^(inde

Java中支持可变参数详解_java

意思就是:参数的个数可以根据需要写,你可以写1个.2个.3个....他们都被保存到一个参数的数组中. 但是这些参有一些约束:他们必须是同类型的,比如都是String字符串类型. 同时,可变参数的函数中的参数的写法也有约束:比如,可变参数的数组必须写在参数的最后,否则程序不知道你的参数到底有多少个. 例子:输出可变参数中的参数值 public class VariableArgument { public static void main(String[] args) { printArgumen

WinRAR命令行参数整理

我的实例: 将D:/wk.doc压缩为:final.rar d:/winrar/rarad:/final.rard:/wk.doc 将final.rar中的wk.doc解压到F:盘 rared:/final.rarF: 将final.rar转换成自解压文件 rarsfinal,rar(默认转换到同级目录下了) 给自解压文件(.exe)添加注释(设置默认解压路径等) rarc-zwk.txtd:/final.exe 直接创建自解压文件: rara-sfxd:/cc.exed:/cc.txt 用法:

给SQL Server传送数组参数的变通办法

server|数组 最近一直在做Dnn模块的开发,过程中碰到这么一个问题,需要同时插入N条数据,不想在程序里控制,但是SQL Sever又不支持数组参数.所以只能用变通的办法了.利用SQL Server强大的字符串处理传把数组格式化为类似"1,2,3,4,5,6".然后在存储过程中用SubString配合CharIndex把分割开来. 详细的存储过程 CREATE PROCEDURE dbo.ProductListUpdateSpecialList @ProductId_Array v

为SQL Server数据库传数组参数的变通办法

最近一直在做Dnn模块的开发,过程中碰到这么一个问题,需要同时插入N条数据,不想在程序里控制,但是SQL Sever又不支持数组参数.所以只能用变通的办法了.利用SQL Server强大的字符串处理传把数组格式化为类似"1,2,3,4,5,6". 然后在存储过程中用SubString配合CharIndex把分割开来 详细的存储过程 CREATE PROCEDURE dbo.ProductListUpdateSpecialList @ProductId_Array varChar(800