指向具有特定参数的函数的指针的c++向量

c++ vector of pointers to functions with specific parameters

本文关键字:函数 指针 c++ 向量 参数      更新时间:2023-10-16

如果我有一个函数,并且我想用一个特定的参数来指向它,我可以使用auto,但如下所示:

void bar(int n){std::cout << n;}
auto foo = std::bind(bar, 2);

但如果我想制作一个这些指针的矢量,它不起的作用

std::vector<auto> v;

您可以编写vector<decltype(foo)> v;,尽管这可能不能满足您的要求(其他bind表达式可能会提供不兼容的类型)。

如评论中所述,std::function是为此目的而设计的:

std::vector< std::function<void()> > v;
v.emplace_back( foo );
v.emplace_back( std::bind(bar, 2) );
v.emplace_back( []{ std::cout << 2; } );