昨日書いたコードはあまり意味がなかったので簡単なラッパーを書いてラムダ式を多重定義で呼び出せるようにしてみました。 これなら SFINAE を使う意味も出てくるかな。 [ソース] #include <iostream> #include <string> template<typename F1, typename F2> struct overload_impl : F1, F2{ using F1::operator(); using F2::operator(); overload_impl(F1 const& f1, F2 const& f2) : F1(f1), F2(f2){} }; template<typename F1, typename F2> overload_impl< typename std::decay<F1>::type, typename std::dec