
Hi, I have a small functor: struct operation { template<class> struct result; template< class F > struct result<F(int)> { typedef long type; }; template< class F > struct result<F(float)> { typedef double type; }; template< class T > typename result< operation(T) >::type operator()( T t ) { typedef typename result< operation(T) >::type result_type; return result_type( t * T( 2 ) ); } }; and I wonder why a transform_view works as expected: typedef fusion::vector< int , float > vector_type; vector_type v( 1 , 3.4 ); fusion::transform_view< vector_type , operation > tv( v , operation() ); while result_of::transform does not: fusion::result_of::transform< vector_type , operation >::type tv2 = fusion::transform( v , operation() ); result in compile errors? Any hints?