任意の関数のような方法でラッパーを生成したい
R func(A a, B b, ...)
を
std::function<std::string (std::vector<std::string>)>
が返されf
、パラメータがベクトルから取得されboost::lexical_cast
、戻り値と同じように で変換 (試行) されるようにラップされます。例えば:
int add(int a, int b);
auto f = magic_wrap(&add);
auto result = f(std::vector<std::string>{"2", "3"});
// result == "5"
私の直感では、これは可変個引数テンプレートで可能であるはずですが、関数の戻り値とパラメーターの型を取得することに行き詰まっています。これはどういうわけか可能ですか?