$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] [fusion] transform and transform_view
From: Karsten Ahnert (karsten.ahnert_at_[hidden])
Date: 2011-04-22 08:47:54
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?