问题标签 [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 投票
1 回答
1928 浏览

c - 用 Objective-C 包装 C 库 - 函数指针

我正在用 Objective-C 编写一个 C 库的包装器。该库允许我在某些事件发生时注册回调函数。

register_callback_handler() 函数将函数指针作为参数之一。

我对编程大师的问题是:如何将 Objective-C 方法调用/选择器表示为函数指针?

  • NSInvocation 会在这种情况下有用还是级别太高?
  • 我最好只编写一个 C 函数,其中写有方法调用,然后将指针传递给该函数?

任何帮助都会很棒,谢谢。

0 投票
3 回答
1170 浏览

c++ - 我如何引用 std::sin(const valarray&)?

我遇到了一些valarray函数指针代码的问题:

第一个编译,第二个给出:

0 投票
3 回答
2809 浏览

c++ - 使用 boost::function::target 获取函数指针时的空指针

阅读此答案后,我认为我有一个解决方案。至少答案是我想做的,但我在实施时遇到了问题。

这是我正在尝试做的事情的大纲

程序编译时没有错误或警告,但我得到一个从 f.target() 返回的空指针 (fpt);在运行时。从上述 stackoverflow 问题上链接的引用看来,如果 boost 无法执行运行时转换,则似乎返回了一个空指针。但我不知道为什么 Boost 可能无法执行运行时转换。有任何想法吗?

0 投票
6 回答
54731 浏览

c - 如何在 C 中实现“私有/受限”功能?

在一次 C 面试中,我被问到一个非常有趣的问题:如何实现一个函数 f(),使其只能从特定的 g() 函数中调用。如果 g() 以外的函数尝试调用 f() 将导致编译器错误。

起初,我认为这可以通过函数指针来完成,并且我可以在运行时接近阻塞调用。但是我想不出编译时策略。我什至不知道这是否可以使用 ansi C.

有人有什么主意吗?

0 投票
2 回答
1876 浏览

c++ - 帮助提升绑定/功能

我有这个必须匹配的函数签名

这是我到目前为止所拥有的:

但是,在lua_register(_luaState...,它仍然在抱怨转换问题

错误 1 ​​错误 C2664: 'lua_pushcclosure' : 无法将参数 2 从 'boost::function' 转换为 'lua_CFunction'

有谁知道如何解决这个问题?

0 投票
6 回答
7636 浏览

c++ - C++ list::sort 的自定义比较函数

嗨,我在编译一段简单的代码时遇到了麻烦。我正在创建一个实现一副纸牌的类,我想使用 list::short 方法创建一个 shuffle 方法。

相关代码:

甲板.h

甲板.cc:

编译器显示下一条消息(忽略行号):

问题必须在我没有正确使用的 compareRandom 参考上,我无法在谷歌上找到这个问题的答案。

提前致谢。

0 投票
2 回答
5754 浏览

c++ - 在 C/C++ 中引用 Lua 函数

我有一个函数嵌套在一组表中相对较深。C/C++ 中有没有办法获得对该函数的“引用”并在我需要使用它时将它(和 args)推送到堆栈上?

0 投票
5 回答
3493 浏览

c++ - C/C++中的原始指针和函数指针支持哪些操作?

函数指针支持的所有操作与原始指针有什么不同?> , < , <= , >= 操作符是否受原始指针支持,如果有,有什么用?

0 投票
3 回答
1240 浏览

c++ - 条件运算符无法解析重载的成员函数指针

我在处理指向 C++ 中重载成员函数的指针时遇到了一个小问题。以下代码编译良好:

但这不能编译(编译器抱怨重载不明确):

大概这与编译器将条件运算符的返回值与函数指针类型分开排序有关?我可以解决它,但我很想知道规范如何说所有这些都应该起作用,因为它看起来有点不直观,如果有一些方法可以解决它而不会退回到 5 行 if-then-else .

我正在使用 MSVC++,如果这有什么不同的话。

谢谢!

0 投票
4 回答
3065 浏览

c++ - C++ 成员函数指针和 STL 算法

我有一个抽象函子类,它重载了 operator() 和实现它的派生对象。

我有一个函数(另一个类的一部分),它试图获取这些仿函数类的数组,并尝试将指向成员函数的指针传递给 std 算法 for_each(),这是我正在做的事情的概述:

编辑:为了清楚起见,我重新清理了它并放置了旧的小例子。

我尝试了几种方法,但不知道如何让它工作,我需要使用抽象类型,因为我可以有不同的派生类型,但它们都必须实现相同的 operator()(param x ) 功能。

我只需要 for_each() 函数就可以调用成员函数 operator()(param x)。我有一个不同的函数,它有具体的实现,只需传递一个实例就可以了。我试图在这里达到类似的效果,但不知道我得到了什么具体的课程。

我究竟做错了什么?