c++ - 根据参数返回指向具有不同签名的函数的指针

标签 c++ function-pointers function-signature

我看过 this link describing a fixed signature example但想知道如何编写一个函数,该函数返回一个指向函数的指针,该函数的签名取决于调用函数的参数(如果可能的话)?

示例:

假设我有

typedef void (*func1) (int);
typedef void (*func2) (int, int);

我想要一个函数 get_func ,它根据整数参数的值返回指向一个或另一个的指针,例如: get_func1(0) 返回 func1get_func2(1) 返回 func2

最佳答案

我不认为你可以那样做。

您可能想要做的是返回一个指向函数的指针,该函数采用一些 struct 指针作为唯一参数,并且在该 struct 中您有一个可变数字参数。

typedef void (*func1) (struct MyStruct*);

然后在 MyStruct 中:

struct MyStruct {
  int param;
  struct MyStruct* next;
};

或者类似的东西。您可以将结构链接在一起,并将它们全部读取为“参数”。

关于c++ - 根据参数返回指向具有不同签名的函数的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19941146/

相关文章:

function - 如何比较 Go 中的 2 个函数?

c - 多个 const 限定符是什么意思?

c++ - 改进这个 std::index_sequence 惯用法代码

c++ - 写入文本文件而不覆盖它

c# - 在 WP8 中支持 XNA?

c++ - 获取 boost::hana::partial::operator() 的地址

c - 将数组传递给函数指针(在C中)?

php - 传递默认值而不是引用

C++ 继承 : function signatures for base type not working with derived type

C++常量关键字异常行为