boost::any
に格納されている関数ポインタを関数ポインタにキャストしようとしています。boost :: anyはキャストできませんstd :: function
void foo(int, int) {}
template<typename T, typename... Ts>
void bar(T func, Ts... args)
{
boost::any any = func;
boost::any_cast<std::function<void(Ts...)>>(any)(args...);
}
しかしboost::any_cast
はboost::bad_any_cast
をスローしますが、なぜ、種類が同一であるので、私は考えています。
bar(foo, 0, 1);
を次のように私はbar
を呼び出しています、私は何かが足りないのですか?
_なぜ型が同じであるのかは分かりません。_それらについては何が同じですか? –