![](/img/trans.png)
[英]std::vector of function pointers: different template parameters
[英]Is it possible to keep function pointers in an std::vector?
是否可以將函數指針保留在std :: vector中? 並在迭代器循環中調用每個函數?
是否可以將函數指針保留在
std::vector
?
當然,只要它們都是同一類型:
void foo()
{
std::cout << "inside foo\n";
}
void bar()
{
std::cout << "inside bar\n";
}
void baz()
{
std::cout << "inside baz\n";
}
std::vector<void(*)()> fps { foo, bar, baz };
並在迭代器循環中調用每個函數?
完全沒有問題:
for (auto&& fp : fps)
{
fp();
}
您可能還需要考慮Boost Signals2庫。 您可以將任何數量的函數指針(也稱為“插槽”)注冊到“信號”,並通過簡單地調用“信號”本身來調用每個函數指針。 該庫負責管理函數指針列表,並在必要時遍歷每個函數指針。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.