typename TypedData< std::vector< U > >::Ptr vectorLookup( Lookup<T,U> &lookup, typename TypedData< std::vector< T > >::Ptr x ) { typename TypedData< std::vector< U > >::Ptr res = new TypedData< std::vector< U > >; res->writable().resize( x->readable().size() ); typename std::vector< T >::const_iterator xIt = x->readable().begin(); typename std::vector< U >::iterator yIt = res->writable().begin(); for ( ; xIt != x->readable().end(); xIt++, yIt++ ) { *yIt = lookup( *xIt ); } return res; }