问题标签 [member-function-pointers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
293 浏览

c++ - 区分指向 C++ 中重载成员函数的指针

我想区分 C++ 模板结构中的重载成员函数。如果此方法存在get_pointer,则专用结构中的静态方法distinguish_foo应返回一个指针。否则我想返回一个指向. 我怎样才能做到这一点?derived::foo pseudo::foo

0 投票
3 回答
3122 浏览

c++ - 在定义为(指向)函数类型的变量上获取必须具有(指向)函数类型

我正在为一个函数创建一个 typedef,该函数将用于调用存储在字符串中的任意函数到函数指针映射。我确信问题与如何通过我的代码中的许多对象声明和引用类型有关,但这是我能想到如何做我需要做的唯一方法

这是 fmap.h 这里我声明了 fmap 类和 executefunctions 类,函数指针的 typedef 是 fmap 的公共成员的第一行

接下来是 web.h 我只包括我认为相关的部分

现在我认为是 web.cpp 的相关部分

现在终于。这是我得到错误的地方。错误行之前有三行注释,解释了我遇到的错误。

任何人都可以提供的任何帮助将不胜感激。

谢谢大家

0 投票
4 回答
2136 浏览

c++ - 将任何类的任何成员函数作为回调函数传递

我正在开发一个包含一些按钮的 OpenGL 菜单。我希望能够将任何类的操作(成员函数(具有固定签名)!)与按下按钮时执行的按钮相关联。我现在可以做到,但仅限于一种类型。我希望能够将任何类的任何成员函数用于我的回调。

现在我正在这样做:

然后我可以创建一个这样的按钮:

回调函数具有以下签名:

当我按下按钮时,我可以执行我传递的回调函数。

我看了一下 boost::bind 但我真的找不到解决问题的方法。此外,我所有的类都是从类 Object 派生的,所以我想到了一个 void*,我可以通过一些 typeid hack 将其转换为正确的类,但我无法让它工作。最后,我总是遇到无法完全消除回调函数的类类型(这对于将函数指针保存在我的按钮类中是必要的)并且仍然能够调用该函数的问题。

你知道如何解决这个问题吗?

0 投票
3 回答
859 浏览

c - struct 有一个函数指针,指向一个函数,该函数采用所述结构的指针..需要预定义吗?

我正在尝试创建一个具有函数指针的结构。该函数指针指向一个函数,该函数采用所述结构的指针。这是一个真正的先有鸡还是先有蛋的问题,因为原型需要了解结构,而结构需要了解原型。有没有办法预定义结构?我是 C 新手,所以如果有人有任何见解,我将不胜感激。

谢谢,-devnull

0 投票
3 回答
4876 浏览

c++ - C++ 类中的函数指针表

我正在尝试在一个类中制作一个函数指针表。我无法在网上找到任何这样的例子,大多数都涉及在他们的类之外使用成员函数指针。

例如:

给我错误“术语不评估为采用 0 个参数的函数”。

0 投票
1 回答
289 浏览

c++ - 将成员函数指针传递给 gcc 上的模板化成员函数时出现问题

我在将成员函数指针传递给 gcc 上的模板化成员函数时遇到问题。有谁知道如何修改下面的代码以让 gcc 接受我正在尝试做的事情?

尝试编译代码时出现以下错误:

我使用的 gcc 版本是 4.4.2。

非常感谢您的帮助!

0 投票
6 回答
1397 浏览

c++ - 将成员函数作为参数传递/c++

0 投票
2 回答
837 浏览

c++ - 存储和稍后调用未知类的成员函数

我正在尝试创建一个可以运行来自未知类的函数的线程池。我不希望必须创建非成员作为代理。我设法创建了一个工作池和工作线程类以及一个任务结构,所有这些都是模板。

照原样,如果我确定 ThreadPool 和 Task 的类,则此代码有效。但我希望能够调用未知类类型的成员。我曾考虑过一个 void ptr,但我找不到将其转换为有效实例 ptr 的方法。我也研究了 boost::mem_fun 但很难真正掌握它。

我已经简要了解了 C++0x,据我了解,它应该可以更轻松地解决我的问题,但如果可能的话,我想在那之前解决这个问题。

0 投票
1 回答
2583 浏览

c++11 - C++0x 函数<>、绑定和成员

我尝试按照Bjarne Stroustupsfunction模板的解释进行操作。我专门玩过c-function-pointersfunctorslambdasmember-function-pointers的互换性

给定定义:

我想分配给function<float(int,int)>所有可能的东西:

最后一行给出了一个典型的不可读的编译器模板错误。叹息

我想绑定f到现有的x实例成员函数,这样就只剩下签名float(int,int)了。

应该是什么线而不是

...或者错误在哪里?


背景:

bind下面是使用和function使用成员函数的Bjarnes 示例:

以为 bind是这样使用的:未分配的地方得到placeholders,其余的填充在bind. 那么,_1坚果应该得到this吗?因此最后一行是:


在下面的霍华德建议中,我尝试了它:-)绑定中的 args 顺序

0 投票
4 回答
8281 浏览

c++ - 铸造成员函数指针

我需要使用一个成员函数指针,它接受在其他代码中使用的基类的参数。好吧,我只是想做一些类似下面例子的事情。这段代码工作正常,但我想知道这样的演员是否总是安全的?我不能在这里做dynamicstatic投。