函数指针,它在不指定参数的情况下调用函数

Function pointer which calls a function without specifying parameters

本文关键字:函数 参数 情况下 调用 指针      更新时间:2023-10-16

我有一个函数foo:

void foo(int n) {}

我想要一个指向函数的指针,但用指定的参数调用它。所以基本上,像这样的东西:

auto bar =  //init
bar(); //calls foo(2)

您可以使用std::bind:

auto bar = std::bind(foo, 2);

那么你可以这样称呼它:

bar();

如果你真的想要一个指针,没有捕获的c++11 lambdas可以转换为类似的函数指针

#include <iostream>
typedef void(*functype)();
void foo(int n)
{
  std::cout << n;
}
int main()
{
  functype ptr = [](){foo(2);};
  ptr();
  return 0;
}