#pragma once #include #include namespace fc { template fc::function > make_fused( const fc::function& f ) { return [=]( fc::tuple<> ){ return f(); }; } template fc::function) > make_fused( const fc::function& f ) { return [f]( fc::tuple t){ return f(t.a); }; } template fc::function) > make_fused( const fc::function& f ) { return [f]( fc::tuple t){ return f(t.a,t.b); }; } template fc::function) > make_fused( const fc::function& f ) { return [f]( fc::tuple t){ return f(t.a,t.b,t.c); }; } template fc::function) > make_fused( const fc::function& f ) { return [f]( fc::tuple t){ return f(t.a,t.b,t.c,t.d); }; } }