はじめに
templateを使って、std::tupleに関数を格納して回してみた(タイトルママ)
やったこと
C++ の std::tuple で動的にループする
と
静的ポリモーフィズムの安全で簡単な実装 -動的から静的にしてパフォーマンス向上-のこのコメント
を参考に書いてみた
C++
#include <iostream>
#include <vector>
#include <functional>
#include <tuple>
template <typename Func, typename ...Args>
void func_each(std::tuple<Args...> const& args, Func func){
std::apply([&](auto... arg) constexpr{(func(arg), ...);}, args);
}
void func1(){
std::cout << "func1" << std::endl;
}
void func2(){
std::cout << "func2" << std::endl;
}
int main(){
auto var = std::tuple(&func1, &func2);
func_each(var, [&](auto it){it();});
return 0;
}