GoingNative2013 でのタプルの爆発に関する Andrei Alexandrescu の講演を見た人はいますか?
以下は、私がよく理解していないコードです。
template <class F, class... Ts>
auto explode(F&& f, const tuple<Ts...>& t)
-> typename result_of<F(Ts...)>::type
{
return Expander<sizeof...(Ts),
typename result_of<F(Ts...)>::type,
F,
const tuple<Ts...>&>::expand(f, t);
}
result_of の F(Ts...) は私を悩ませます。つまり、 F は関数型を表していませんか? 私は R(Ts...) をよく知っていますが、ここの R は戻り型ですが、R があるべき場所で F を使用すると、それが私を夢中にさせるものです...
ここで奇妙な F(Ts...) を理解するのを手伝ってくれる人はいますか?
Andrei Alexandrescu の講演へのリンクは次のとおりです: http://channel9.msdn.com/Events/GoingNative/2013/The-Way-of-the-Exploding-Tuple